Are you working with 0.7 source or off of trunk? In 0.7 Pig used javacc to generate its parser. In trunk, only in the last few weeks, we have switched to antlr.

Other comments inline.

On Mar 20, 2011, at 9:15 AM, Nero Couvalli wrote:

Hello to everyone,

I have been experimenting with Pig 0.7 source code some time and have two
questions regarding command parsing in Pig.
I located two files in org.apache.pig.parser package named queryLexer.g and queryParser.g, which, if I understood rightly, have the required antlr code
in order to parse commands in Pig.
The first question is if these two files are the only files that i must make changes in order for pig to recognize (lexically and syntactically) a new
command.
It depends on what you want to change. For core Pig Latin changes, yes, this is all you need. If you want to make changes to the shell commands (cd, mkdir, etc.) that is handled by grunt and has a different parser. If you want to make changes to how pre-processing works, that also is a separate parser.

The second question is whether these files, if altered, need to be
recompiled with antl in order to work (and what command is needed, if that
is the case).
The build system handles regenerating the files when you change them. Just type 'ant' (or click the appropriate button in your IDE) and all will be done.

Alan.


Thank you in advance,

Nero.

Reply via email to