Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- grammar KanbanDSL2;
- options {
- output=AST;
- }
- tokens {
- UNIT;
- STAGE;
- CARDS;
- NAME;
- LIMIT;
- }
- stages : stage+
- -> ^(UNIT stage+)
- ;
- stage : name (':' limit)? (cards|substages) ';'
- -> ^(STAGE name limit? cards? substages?)
- ;
- substages
- : substage+
- ;
- substage: '[' name (':' limit)? cards ']'
- -> ^(STAGE name limit? cards)
- ;
- limit : INT
- -> LIMIT[$text]
- ;
- cards : '(' (name (',' name)*)? ')'
- -> ^(CARDS name*)
- ;
- name
- : ID+
- -> NAME[$text]
- ;
- ID : ('a'..'z'|'A'..'Z'|'_'|'!') ('a'..'z'|'A'..'Z'|'0'..'9'|'_'|'!')*
- ;
- INT : '0'..'9'+
- ;
- COMMENT
- : '//' ~('\n'|'\r')* '\r'? '\n' {$channel=HIDDEN;}
- | '/*' ( options {greedy=false;} : . )* '*/' {$channel=HIDDEN;}
- ;
- WS : ( ' '
- | '\t'
- | '\r'
- | '\n'
- ) {$channel=HIDDEN;}
- ;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement