PigLexer.g
lexer grammar PigLexer;
@header {
package pig;
}
@members {
}
DEFINE : 'define'
;
LOAD : 'load'
;
FILTER : 'filter'
;
FOREACH : 'foreach'
;
ORDER : 'order'
;
ARRANGE : 'arrange'
;
DISTINCT : 'distinct'
;
COGROUP : 'cogroup'
;
JOIN : 'join'
;
CROSS : 'cross'
;
UNION : 'union'
;
SPLIT : 'split'
;
INTO : 'into'
;
IF : 'if'
;
ALL : 'all'
;
ANY : 'any'
;
AS : 'as'
;
BY : 'by'
;
USING : 'using'
;
INNER : 'inner'
;
OUTER : 'outer'
;
ONSCHEMA : 'ONSCHEMA'
;
STAR : '*'
;
PARALLEL : 'parallel'
;
PARTITION : 'partition'
;
GROUP : 'group'
;
AND : 'and'
;
OR : 'or'
;
NOT : 'not'
;
GENERATE : 'generate'
;
FLATTEN : 'flatten'
;
EVAL : 'eval'
;
ASC : 'asc'
;
DESC : 'desc'
;
INT : 'int'
;
LONG : 'long'
;
FLOAT : 'float'
;
DOUBLE : 'double'
;
CHARARRAY : 'chararray'
;
BYTEARRAY : 'bytearray'
;
BAG : 'bag'
;
TUPLE : 'tuple'
;
MAP : 'map'
;
IS : 'is'
;
NULL : 'null'
;
STREAM : 'stream'
;
THROUGH : 'through'
;
STORE : 'store'
;
MAPREDUCE : 'mapreduce'
;
SHIP : 'ship'
;
CACHE : 'cache'
;
INPUT : 'input'
;
OUTPUT : 'output'
;
ERROR : 'stderr'
;
STDIN : 'stdin'
;
STDOUT : 'stdout'
;
LIMIT : 'limit'
;
SAMPLE : 'sample'
;
LEFT : 'left'
;
RIGHT : 'right'
;
FULL : 'full'
;
fragment DIGIT : '0'..'9'
;
fragment LETTER : 'a'..'z' | 'A'..'Z'
;
fragment SPECIALCHAR : '_'
;
fragment FSSPECIALCHAR : '-' | ':' | '/'
;
IDENTIFIER: LETTER ( DIGIT | LETTER | SPECIALCHAR | '::' )*
;
fragment FLOATINGPOINT : INTEGER ( '.' INTEGER )? | '.' INTEGER
;
INTEGER: ( DIGIT )+
;
LONGINTEGER: INTEGER ( 'l' | 'L' )?
;
DOUBLENUMBER : FLOATINGPOINT ( ('e' | 'E') ( '-' | '+' )? FLOATINGPOINT )?
;
FLOATNUMBER : DOUBLENUMBER ('f' | 'F')?
;
QUOTEDSTRING : '\'' ( (~('\'' | '\\' | '\n' | '\r'))
| ('\\'
( ('n' | 't' | 'b' | 'r' | 'f' | '\\' | '\'') )
)
| ('\\u'
('0'..'9' | 'A'..'F' | 'a'..'f')
('0'..'9' | 'A'..'F' | 'a'..'f')
('0'..'9' | 'A'..'F' | 'a'..'f')
('0'..'9' | 'A'..'F' | 'a'..'f')
) )*
'\''
;
EXECCOMMAND : '`' (~('`'))* '`'
;
DOLLAR : '$'
;
WS : ( ' ' | '\r' | '\t' | '\u000C' | '\n' ) { $channel = 99; }
;
SL_COMMENT : '--' (~('\r' | '\n'))* { $channel = 99; }
;
ML_COMMENT : '/*' (options {greedy=false;} : .)* '*/' { $channel = HIDDEN; }
;
fragment STRFILTEROP : 'eq' | 'gt' | 'lt' | 'gte' | 'lte' | 'neq' | 'matches'
;
fragment NUMFILTEROP : '==' | '<' | '<=' | '>' | '>=' | '!='
;
FILTEROP : STRFILTEROP | NUMFILTEROP
;
SEMI_COLON : ';'
;
LEFT_PAREN : '('
;
RIGHT_PAREN : ')'
;
LEFT_CURLYP : '{'
;
RIGHT_CURLYP : '}'
;
LEFT_BRACKET : '['
;
RIGHT_BRACKET : ']'
;
POUND : '#'
;
EQUAL : '='
;
COMMA : ','
;
PERIOD : '.'
;
DIV : '/'
;
PERCENT : '%'
;
PLUS : '+'
;
MINUS : '-'
;
QMARK : '?'
;