BNF for Console.jj

TOKENS

/**
 * Console commands.
 */
<DEFAULT> TOKEN : {
<SHUTDOWN: "shutdown">
| <KILL: "kill">
| <PS: "ps">
| <UNDEPLOY: "undeploy">
| <DEPLOY: "deploy">
| <EXEC: "exec">
| <THREADS: "threads">
}

   
/**
 * Standard tokens.
 */
<DEFAULT> TOKEN : {
<#ALPHA_CHAR: ["a"-"z","A"-"Z"]>
| <#NUM_CHAR: ["0"-"9"]>
| <#ALPHANUM_CHAR: ["a"-"z","A"-"Z","0"-"9"]>
| <#HEX: ["a"-"f","A"-"F","0"-"9"]>
| <#WORD_CHAR: ["a"-"z","A"-"Z","0"-"9","_","-",".",":","/"]>
| <NEWLINE: "\n">
}

   
/**
 * J5m tokens.
 */
<DEFAULT> TOKEN : {
<APPID: <WORD> ":" <WORD>>
| <WORD: (<WORD_CHAR>)+>
| <QUOTED_SENTENCE: "\"" (~["\"","\n"])* "\""> : {
}

   
<DEFAULT> SKIP : {
" "
| "\t"
| "\f"
| "\r"
}

   

NON-TERMINALS

/**
 * Returns next command.
 */
next ::= ( ( shutdown ) | ( kill ) | ( ps ) | ( undeploy ) | ( deploy ) | ( exec ) | ( threads ) ) <NEWLINE>
shutdown ::= <SHUTDOWN>
kill ::= <KILL> <WORD>
ps ::= <PS>
undeploy ::= <UNDEPLOY> ( <APPID> )?
deploy ::= <DEPLOY> <WORD> <WORD>
exec ::= <EXEC> <WORD> <WORD> ( <APPID> )? ( parseDistantParameter )*
threads ::= <THREADS>
parseDistantParameter ::= ( <WORD> "=" ( ( <QUOTED_SENTENCE> ) | ( <WORD> ) ) )