// STEP grammar grammar STEP; // Instance line inst : Id '=' Funcname parameters ';' ; // Identifier Id : '#' [0-9]+ ; // Function name, e.g. IFCDIRECTION Funcname : [A-Z]+ ; // Parameter list separated by comma and surrounded by parenthesis parameters : '()' | '(' parameter (',' parameter)* ')' ; // Parameters can be of type: // - number : 1237, 23.43 or 4. // - byte : "ADSJKFDSN9302942" // - string : 'let''s go picnic!' // - enum : .foobar. // - empty value : $ or * // - id : #45 // - parameters : parameter list parameter : Number | ByteString | String | Enum | Empty | Id | parameters ; Number : '-'?[0-9]+('.'([0-9]+)?)? ; ByteString : '"' [A-Z0-9]+ '"' ; String : '\'' ([a-zA-Z0-9 _<>/"=(),;:+$&#%@`!?*^{}-]+|'\'\''|'\\'|'.'|'|'|'['|']')* '\'' ; Enum : '.' [0-9a-zA-Z_]+ '.' ; Empty : '$' | '*' ; // Ignoring spaces WS : [ \t\r\n]+ -> skip ; // skip spaces, tabs, newlines