Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- grammar PolishNotation;
- fragment SINGLE_SPACE : '\u0020'; // ' '
- fragment TABULATION : '\u0009'; // '\t'
- fragment LINE_FEED : '\u000A'; // '\n'
- fragment CARRAIGE_RETURN: '\u000D'; // '\r'
- fragment COMMA : ','; // ','
- fragment DOT : '.';
- fragment FRACTION : DOT [0-9]* '1'..'9';
- Drop : 'Drop';
- IntegerDigits : 'IntegerDigits';
- Part : 'Part';
- Last : 'Last';
- First : 'First';
- Count : 'Count';
- Total : 'Total';
- Length : 'Length';
- Sort : 'Sort';
- Join : 'Join';
- Reverse : 'Reverse';
- Range : 'Range';
- Add : '+';
- Subtract : '-';
- Multiply : '*';
- Divide : '/';
- Colon : ':' -> type(Divide);
- Power : '^';
- DoubleMultiply: '**' -> type(Power);
- Max : 'max';
- Min : 'min';
- IntPart : '0'
- | [1-9]+ [0-9]*
- ;
- PointFloat : IntPart? FRACTION;
- WhiteSpace : ( SINGLE_SPACE | TABULATION )+ -> skip;
- NewLine : ( CARRAIGE_RETURN | LINE_FEED )+ -> skip;
- //Comma : ( COMMA )+ -> skip;
- number : IntPart
- | PointFloat
- ;
- list : '{'(number*',')*number'}'
- ;
- operationReturningNumbers : (op=( Add
- | Subtract
- | Multiply
- | Divide
- | Power
- | Max
- | Min
- )
- (operationReturningNumbers | number) (operationReturningNumbers | number)
- | '(' operationReturningNumbers ')')
- ;
- operationReturningLists :
- (op=( Reverse | Sort | Length | Total | Count | First | Last| Max | Min)
- ('['list']' | '['operationReturningLists']')) |
- (op= Join
- ('['list+']' | '['operationReturningLists+']')) |
- // (op= Multiply
- // (list | operationReturningLists) (list | operationReturningLists)) |
- (op= (Add | Multiply | Divide | Power)
- ( ( list | operationReturningLists ) (operationReturningNumbers | number ) |
- ( number | operationReturningNumbers) (operationReturningLists | list ) |
- ( list | operationReturningLists )( list | operationReturningLists ))) |
- (op=( Part | Drop )
- (('['list | '['operationReturningLists) ','number']')) |
- (op=( Range | IntegerDigits)
- ('['number']' | '['operationReturningNumbers']'))
- | '(' operationReturningLists ')'
- ;
- expression: operationReturningLists
- | operationReturningNumbers
- | number
- | list
- ;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement