Name: 's3' Behavior: 's3.behavior.self' Syntax: SLR(1) ::= ; ::| ; ::= ; ::= ; ::? ; ::= {smallKey} ; ::+ {capKey}; ::| ; ::= ; ::= ; ::* ; ::= {operator} ; ::| ; ::= ; ::= ; ::+ {identifier}; ::| ; ::? 'resend.'; ::= {identifier} '.'; ::| 'self' {number} {string} ; ::= '(' ')'; ::= '[' ']'; ::= '{' {string} '}'; ::? ::| ; ::= '.' ; ::+ '.'; ::= '^' ; ::? '.'; ::? ; ::= '|' '|'; ::* ; ::| ; ::+ '.'; ::= '{' {string} '}'; ::| ; ::= ; ::| '^' '_' '^_' '_^'; ::| ; ::= ':' ; ::= ; ::? ; ::| ; ::= '<-' ; ::= '=' ; ::= {operator} ; ::| ; ::= '=' ; ::= {identifier} '=' ; ::= {smallKeyword} ; ::| ; ::= '=' ; ::= '=' ; ::* {identifier} {capKeyword}; ::* {capKeyword}; ::= {identifier} ; ::? '*'; Lex: SLR(1) {digit} = [0-9]; {smallLetter}= [a-z]; {capLetter} = [A-Z]; {letter} = [a-zA-Z]; {opChar} = [!@#$%^&*-+=~/?<>,;|`\\]; {smallstart} = {smallLetter} | '_'; {indentChars}= {digit} | {letter} | '_'; {delimChar} = [()\[\]{}.:]; {blank} = [ \t\n] | {comment} {comment} = '"' {commentStuff}* '"'; {whitespace} -> {blank}+; {op} -> {opChar}+; {capKeyword} -> {capLetter}{identChars}+ ':'; {smallKeyword}-> {smallstart}{identChars}+ ':'; {identifier} -> {smallLetter}{identChars}+;