protected boolean accepts(TokenStream stream) {
    	
    				int numberOfTokens = 0;
    				CompositeToken picture = new CompositeToken();

    				while (true) {
    					final Token token = stream.nextToken();
    	
    					if (token == null) {
    						break;
    					}
    	
    					if (numberOfTokens > 0 && !token.hasTag(TokenizerTag.CHAINED)) {
    						stream.pushback(token);
    						break;
    					}
    					
    					picture.addToken(token);
    					numberOfTokens += 1;
    				}
    				
    				if (numberOfTokens == 0) {
    					return false;
    				}
    				
    				final Token lastToken = picture.getToken(numberOfTokens - 1);
    				if (lastToken.hasTag(SyntacticTag.SEPARATOR) && lastToken.getText().equals(".")) {
    					picture.removeToken(numberOfTokens - 1);
    					stream.pushback(lastToken);
    				}
    				
    				returnToken(picture);
    				return true;
    			}