java parser generator
home
features
documentation
grammars
downloads
site originally designed by ninth ave

Package nzdis . lang . sl ;

Helpers

tab = 9
cr = 13
lf = 10
eol = cr lf | cr | lf |
white = ( ' ' | tab | eol ) +
l_par = '('
r_par = ')'
dot = '.'
q_mark = '?'
colon = ':'
hash = '#'
minus = '-'
plus = '+'
star = '*'
slash = '/'
semicolon = ';'
pipe = '|'
upper = [ 'A' .. 'Z' ]
lower = [ 'a' .. 'z' ]
digit = [ '0' .. '9' ]
special = [ [ hash + colon ] + q_mark ]
brackets = [ l_par + r_par ]
integer = minus ? digit ( digit ) *
float = minus ? digit ( digit ) * '.' digit ( digit ) * ( ( 'E' | 'e' ) ( '+' | '-' ) ? digit ( digit ) * ) ?
not = 'not'
and = 'and'
or = 'or'
implies = 'implies'
equiv = 'equiv'
true = 'true'
false = 'false'
sequence = 'sequence'
set = 'set'
forall = 'forall'
exists = 'exists'
feasible = 'feasible'
done = 'done'
action = 'action'
iota = 'iota'
any = 'any'
all = 'all'

Tokens

line_comment = '/' '/' [ [ 0 .. 0xffff ] - [ cr + lf ] ] * eol | ';' [ [ 0 .. 0xffff ] - [ cr + lf ] ] * eol
multiline_comment = '/' '*' [ [ 0 .. 0xffff ] - [ '*' + '/' ] ] * '*' '/'
string_literal = '"' ( [ [ 0 .. 0xffff ] - [ '"' + '\' ] ] | '\' [ 0 .. 0xffff ] ) + '"'
l_par = l_par
r_par = r_par
q_mark = q_mark
colon = colon
semicolon = semicolon
pipe = pipe
not = not
and = and
or = or
implies = implies
equiv = equiv
true = true
false = false
sequence = sequence
set = set
forall = forall
exists = exists
feasible = feasible
done = done
action = action
iota = iota
any = any
all = all
dot = dot
integer = integer
float = float
word = ( [ [ [ [ 0 .. 0xffff ] - [ 0 .. 0x20 ] ] - brackets ] - special ] ) ( [ [ [ 0 .. 0xffff ] - [ 0 .. 0x20 ] ] - brackets ] ) *
white = white

Ignored Tokens

Productions

content =
l_par content_expression + r_par
content_expression =
{identifying} identifying_expression
| {action} action_expression
| {proposition} proposition
proposition =
{negation} l_par not proposition r_par
| {disjunction} l_par or [left]:proposition [right]:proposition r_par
| {implication} l_par implies [left]:proposition [right]:proposition r_par
| {equivalence} l_par equiv [left]:proposition [right]:proposition r_par
| {existential} l_par exists variable proposition r_par
| {universal} l_par forall variable proposition r_par
| {predicate} l_par predicate_symbol term + r_par
| {true} true
| {false} false
term =
{variable} variable
| {function} functional_term
| {action} action_expression
| {identifying} identifying_expression
| {constant} constant
| {sequence} P . sequence
| {set} P . set
identifying_expression =
{iota} l_par iota term proposition r_par
| {any} l_par any term proposition r_par
| {all} l_par all term proposition r_par
functional_term =
{normal} l_par function_symbol term * r_par
| {named} l_par function_symbol parameter + r_par
constant =
{integer} integer
| {float} float
| {string} string
variable =
q_mark string
action_expression =
l_par action agent term r_par
| {sequence} l_par pipe [left]:action_expression [right]:action_expression r_par
| {alternative} l_par semicolon [left]:action_expression [right]:action_expression r_par
proposition_symbol =
string
predicate_symbol =
string
function_symbol =
string
| {tmp_and} and
| {tmp_or} or
| {tmp_not} not
| {tmp_implies} implies
| {tmp_equiv} equiv
| {tmp_forall} forall
| {tmp_exists} exists
agent =
term
sequence =
l_par T . sequence term * r_par
set =
l_par T . set term * r_par
parameter =
parameter_name parameter_value
parameter_value =
term
string =
{word} word
| {literal} string_literal
parameter_name =
colon string
This site has been last updated by the web master on 2007/6/24.