Return-Path: Delivered-To: apmail-pig-commits-archive@www.apache.org Received: (qmail 39743 invoked from network); 2 Dec 2010 01:30:50 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 2 Dec 2010 01:30:50 -0000 Received: (qmail 86061 invoked by uid 500); 2 Dec 2010 01:30:50 -0000 Delivered-To: apmail-pig-commits-archive@pig.apache.org Received: (qmail 86021 invoked by uid 500); 2 Dec 2010 01:30:49 -0000 Mailing-List: contact commits-help@pig.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@pig.apache.org Delivered-To: mailing list commits@pig.apache.org Received: (qmail 86014 invoked by uid 99); 2 Dec 2010 01:30:49 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 02 Dec 2010 01:30:49 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 02 Dec 2010 01:30:48 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 1C99B23889ED; Thu, 2 Dec 2010 01:29:17 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1041245 - in /pig/trunk: build.xml src/org/apache/pig/parser/QueryParser.g test/org/apache/pig/parser/TestQueryParser.java Date: Thu, 02 Dec 2010 01:29:17 -0000 To: commits@pig.apache.org From: thejas@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20101202012917.1C99B23889ED@eris.apache.org> Author: thejas Date: Thu Dec 2 01:29:16 2010 New Revision: 1041245 URL: http://svn.apache.org/viewvc?rev=1041245&view=rev Log: PIG-1618: Switch to new parser generator technology - NewParser-5.patch Modified: pig/trunk/build.xml pig/trunk/src/org/apache/pig/parser/QueryParser.g pig/trunk/test/org/apache/pig/parser/TestQueryParser.java Modified: pig/trunk/build.xml URL: http://svn.apache.org/viewvc/pig/trunk/build.xml?rev=1041245&r1=1041244&r2=1041245&view=diff ============================================================================== --- pig/trunk/build.xml (original) +++ pig/trunk/build.xml Thu Dec 2 01:29:16 2010 @@ -123,7 +123,7 @@ - + @@ -300,7 +300,7 @@ - @@ -330,17 +330,14 @@ - Modified: pig/trunk/src/org/apache/pig/parser/QueryParser.g URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/parser/QueryParser.g?rev=1041245&r1=1041244&r2=1041245&view=diff ============================================================================== --- pig/trunk/src/org/apache/pig/parser/QueryParser.g (original) +++ pig/trunk/src/org/apache/pig/parser/QueryParser.g Thu Dec 2 01:29:16 2010 @@ -18,6 +18,10 @@ /** * Parser file for Pig Parser + * + * NOTE: THIS FILE IS THE BASE FOR A FEW TREE PARSER FILES, such as DefaultDataTypeInserter.g, + * SO IF YOU CHANGE THIS FILE, YOU WILL PROBABLY NEED TO MAKE CORRESPONDING CHANGES TO + * THOSE FILES AS WELL. */ parser grammar QueryParser; @@ -32,6 +36,7 @@ tokens { QUERY; STATEMENT; FUNC; + FUNC_EVAL; CAST_EXPR; BIN_EXPR; TUPLE_VAL; @@ -44,6 +49,9 @@ tokens { NESTED_PROJ; SPLIT_BRANCH; NESTED_PLAN; + MAP_TYPE; + TUPLE_TYPE; + BAG_TYPE; } @header { @@ -176,7 +184,7 @@ load_clause : LOAD^ filename ( USING! fu filename : QUOTEDSTRING ; -as_clause: AS! tuple_def +as_clause: AS^ tuple_def ; tuple_def : tuple_def_full | tuple_def_simple @@ -201,13 +209,15 @@ simple_type : INT | LONG | FLOAT | DOUBL ; tuple_type : TUPLE? tuple_def_full - -> tuple_def_full + -> ^( TUPLE_TYPE tuple_def_full ) ; -bag_type : BAG? LEFT_CURLY! tuple_def? RIGHT_CURLY! +bag_type : BAG? LEFT_CURLY tuple_def? RIGHT_CURLY + -> ^( BAG_TYPE tuple_def? ) ; -map_type : MAP! LEFT_BRACKET! RIGHT_BRACKET! +map_type : MAP LEFT_BRACKET RIGHT_BRACKET + -> MAP_TYPE ; func_clause : func_name LEFT_PAREN func_args? RIGHT_PAREN @@ -267,20 +277,17 @@ and_cond : unary_cond ( AND^ unary_cond ; unary_cond : LEFT_PAREN! cond RIGHT_PAREN! - | - expr FILTEROP^ expr - | - func_eval - | - null_check_cond - | - not_cond + | expr FILTEROP^ expr + | func_eval + | null_check_cond + | not_cond ; not_cond : NOT^ unary_cond ; -func_eval: func_name LEFT_PAREN! real_arg_list? RIGHT_PAREN! +func_eval : func_name LEFT_PAREN real_arg_list? RIGHT_PAREN + -> ^( FUNC_EVAL func_name real_arg_list? ) ; real_arg_list : real_arg ( COMMA real_arg )* Modified: pig/trunk/test/org/apache/pig/parser/TestQueryParser.java URL: http://svn.apache.org/viewvc/pig/trunk/test/org/apache/pig/parser/TestQueryParser.java?rev=1041245&r1=1041244&r2=1041245&view=diff ============================================================================== --- pig/trunk/test/org/apache/pig/parser/TestQueryParser.java (original) +++ pig/trunk/test/org/apache/pig/parser/TestQueryParser.java Thu Dec 2 01:29:16 2010 @@ -43,7 +43,7 @@ public class TestQueryParser { Tree ast = (Tree)result.getTree(); System.out.println( ast.toStringTree() ); - printTree( (CommonTree)ast, 0 ); + TreePrinter.printTree( (CommonTree)ast, 0 ); Assert.assertEquals( 0, lexer.getNumberOfSyntaxErrors() ); Assert.assertEquals( 0, parser.getNumberOfSyntaxErrors() ); } @@ -102,7 +102,7 @@ public class TestQueryParser { Tree ast = (Tree)result.getTree(); System.out.println( ast.toStringTree() ); - printTree( (CommonTree)ast, 0 ); + TreePrinter.printTree( (CommonTree)ast, 0 ); Assert.assertEquals( 0, lexer.getNumberOfSyntaxErrors() ); Assert.assertEquals( 0, parser.getNumberOfSyntaxErrors() ); @@ -145,23 +145,9 @@ public class TestQueryParser { Tree ast = (Tree)result.getTree(); System.out.println( ast.toStringTree() ); - printTree( (CommonTree)ast, 0 ); + TreePrinter.printTree( (CommonTree)ast, 0 ); Assert.assertEquals( 0, lexer.getNumberOfSyntaxErrors() ); return parser.getNumberOfSyntaxErrors(); } - public static void printTree(CommonTree tree, int indent) { - if( tree != null ) { - StringBuilder sb = new StringBuilder(); - for ( int i = 0; i < indent; i++ ) - sb = sb.append( " " ); - - System.out.println( sb + tree.getText() ); - - for ( int i = 0; i < tree.getChildCount(); i++ ) { - printTree( (CommonTree)tree.getChild( i ), indent + 1 ); - } - } - } - }