all | = | [ 0 .. 127 ] |
digit | = | [ '0' .. '9' ] |
non_digit | = | [ [ [ 'a' .. 'z' ] + [ 'A' .. 'Z' ] ] + '_' ] |
double | = | ( '+' | '-' ) ? ( digit * ) '.' ( digit + ) ( ( 'e' | 'E' ) ( '+' | '-' ) ? digit + ) ? |
integer | = | ( '+' | '-' ) ? digit + |
tab | = | 9 |
cr | = | 13 |
lf | = | 10 |
eol | = | cr lf | cr | lf |
not_cr_lf | = | [ all - [ cr + lf ] ] |
not_star | = | [ all - '*' ] |
not_star_slash | = | [ not_star - '/' ] |
short_comment | = | '//' not_cr_lf * eol |
long_comment | = | '/*' not_star * '*' + ( not_star_slash not_star * '*' + ) * '/' |
comment | = | long_comment | short_comment |
simple_escape_sequence | = | '\"' | '\\' | '\b' | '\f' | '\n' | '\r' | '\t' |
octal_digit | = | [ '0' .. '7' ] |
octal_escape_sequence | = | '\' octal_digit octal_digit ? octal_digit ? |
hexadecimal_digit | = | [ digit + [ [ 'a' .. 'f' ] + [ 'A' .. 'F' ] ] ] |
hexadecimal_escape_sequence | = | '\x' hexadecimal_digit + |
escape_sequence | = | simple_escape_sequence | octal_escape_sequence | hexadecimal_escape_sequence |
s_char | = | [ all - [ '"' + [ '$' + [ '\' + [ 10 + 13 ] ] ] ] ] | escape_sequence |
s_char_sequence | = | s_char * |
blank | = | ( ' ' | tab | eol ) | |
comment | = | comment | |
l_bkt | = | '{' | |
r_bkt | = | '}' | |
l_par | = | '(' | |
r_par | = | ')' | |
l_sqr | = | '[' | |
r_sqr | = | ']' | |
semicolon | = | ';' | |
colon | = | ':' | |
comma | = | ',' | |
s_qte | = | ''' | |
plus | = | '+' | |
equal | = | '=' | |
dot | = | '.' | |
graph | = | 'graph' | |
attribute | = | 'attribute' | |
basedon | = | 'basedon' | |
interface | = | 'interface' | |
parameter | = | 'parameter' | |
refinement | = | 'refinement' | |
topology | = | 'topology' | |
actor | = | 'actor' | |
inputs | = | 'inputs' | |
outputs | = | 'outputs' | |
nodes | = | 'nodes' | |
edges | = | 'edges' | |
integer | = | integer | |
double | = | double | |
true | = | 'true' | |
false | = | 'false' | |
string | = | '"' s_char_sequence '"' | |
string_tail | = | '+' ( ' ' | eol | tab ) * '"' s_char_sequence '"' | |
identifier | = | non_digit ( digit | non_digit ) * | |
string_identifier | = | '$' s_char_sequence '$' |