You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@pig.apache.org by "Pradeep Kamath (JIRA)" <ji...@apache.org> on 2009/11/12 01:42:39 UTC
[jira] Commented: (PIG-742) Spaces could be optional in Pig syntax
[ https://issues.apache.org/jira/browse/PIG-742?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12776767#action_12776767 ]
Pradeep Kamath commented on PIG-742:
------------------------------------
I gave a shot at changing introducing a new production in QueryParser.jjt but it didnt work. I am wondering if this issue is really because javacc's tokenizer needs a whitespace to tokenize - anybody with more experience with javacc want to comment?
Here's the patch of what I tried:
{code}
Index: src/org/apache/pig/impl/logicalLayer/parser/QueryParser.jjt
===================================================================
--- src/org/apache/pig/impl/logicalLayer/parser/QueryParser.jjt (revision 834628)
+++ src/org/apache/pig/impl/logicalLayer/parser/QueryParser.jjt (working copy)
@@ -979,7 +979,8 @@
| <#DIGIT : ["0"-"9"] >
| <#SPECIALCHAR : ["_"] >
| <#FSSPECIALCHAR: ["-", ":", "/"]>
-| <IDENTIFIER: ( <LETTER> )+ ( <DIGIT> | <LETTER> | <SPECIALCHAR> | "::")* >
+| <IDENTIFIER: ( <LETTER> )+ ( <DIGIT> | <LETTER> | <SPECIALCHAR> | "::" )* >
+| <IDENTIFIEREQUAL: ( <LETTER> )+ ( <DIGIT> | <LETTER> | <SPECIALCHAR> | "::" )* ("=") >
}
// Define Numeric Constants
TOKEN :
@@ -1010,12 +1011,15 @@
// Pig has special variables starting with $
TOKEN : { <DOLLARVAR : "$" <INTEGER> > }
+TOKEN : { <EQUAL: "="> }
+
// Parse is the Starting function.
LogicalPlan Parse() :
{
LogicalOperator root = null;
Token t1;
Token t2;
+ String alias;
LogicalPlan lp = new LogicalPlan();
log.trace("Entering Parse");
}
@@ -1028,7 +1032,8 @@
throw new ParseException(
"Currently PIG does not support assigning an existing relation (" + t1.image + ") to another alias (" + t2.image + ")");})
| LOOKAHEAD(2)
- (t1 = <IDENTIFIER> "=" root = Expr(lp) ";" {
+ (
+ (t1 = <IDENTIFIER> <EQUAL> { alias = t1.image;}| t1 = <IDENTIFIEREQUAL> { alias = t1.image.replaceAll("=", ""); }) root = Expr(lp) ";" {
root.setAlias(t1.image);
addAlias(t1.image, root);
pigContext.setLastAlias(t1.image);
{code}
> Spaces could be optional in Pig syntax
> --------------------------------------
>
> Key: PIG-742
> URL: https://issues.apache.org/jira/browse/PIG-742
> Project: Pig
> Issue Type: Wish
> Components: grunt
> Affects Versions: 0.3.0
> Reporter: Viraj Bhat
> Priority: Minor
>
> The following Pig statements generate an error if there is no space between A and "="
> {code}
> A=load 'quf.txt' using PigStorage() as (q, u, f:long);
> B = group A by (q);
> C = foreach B {
> F = order A by f desc;
> generate F;
> };
> describe C;
> dump C;
> {code}
> 2009-03-31 17:14:15,959 [main] ERROR org.apache.pig.tools.grunt.Grunt - ERROR 1000: Error during parsing. Encountered
> " <PATH> "A=load "" at line 1, column 1.
> Was expecting one of:
> <EOF>
> "cat" ...
> "cd" ...
> "cp" ...
> "copyFromLocal" ...
> "copyToLocal" ...
> "dump" ...
> "describe" ...
> "aliases" ...
> "explain" ...
> "help" ...
> "kill" ...
> "ls" ...
> "mv" ...
> "mkdir" ...
> "pwd" ...
> "quit" ...
> "register" ...
> "rm" ...
> "rmf" ...
> "set" ...
> "illustrate" ...
> "run" ...
> "exec" ...
> "scriptDone" ...
> "" ...
> <EOL> ...
> ";" ...
> It would be nice if the parser would not expect these space requirements between an alias and "="
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.