blob: 83778437d1c57a157a325cd564225c98f145bf11 [file] [log] [blame]
$Start
Token
$End
$Export
ASSIGN LEFT_BRACKET RIGHT_BRACKET SEMICOLON
PLUS MINUS DIVIDE STAR
LEFT_PARENTHESIS RIGHT_PARENTHESIS
CONSTANT EOF_SYMBOL ERROR_SYMBOL
IDENTIFIER
$End
$Terminals
CtlCharNotWS
Space
LF CR HT FF
a b c d e f g h i j k l m
n o p q r s t u v w x y z _
A B C D E F G H I J K L M
N O P Q R S T U V W X Y Z
0 1 2 3 4 5 6 7 8 9
Plus Minus Slash Star LeftParen RightParen
Equal DoubleQuote AtSign BackQuote Tilde Exclamation
Sharp DollarSign Percent Ampersand Caret Colon
SemiColon SingleQuote BackSlash VerticalBar LeftBrace RightBrace
LeftBracket RightBracket QuestionMark Comma Dot LessThan
GreaterThan
AfterASCII
EOF
$End
$Alias
' ' ::= Space
'"' ::= DoubleQuote
"'" ::= SingleQuote
'%' ::= Percent
'|' ::= VerticalBar
'!' ::= Exclamation
'@' ::= AtSign
'`' ::= BackQuote
'~' ::= Tilde
'#' ::= Sharp
'$' ::= DollarSign
'&' ::= Ampersand
'^' ::= Caret
':' ::= Colon
';' ::= SemiColon
'\' ::= BackSlash
'{' ::= LeftBrace
'}' ::= RightBrace
'[' ::= LeftBracket
']' ::= RightBracket
'?' ::= QuestionMark
',' ::= Comma
'.' ::= Dot
'<' ::= LessThan
'>' ::= GreaterThan
'+' ::= Plus
'-' ::= Minus
'/' ::= Slash
'*' ::= Star
'(' ::= LeftParen
')' ::= RightParen
'=' ::= Equal
'\u0080..\ufffe' ::= AfterASCII
$End
$Rules
Token ::= Identifier
/.$BeginAction
checkForKeyWord();
$EndAction
./
Token ::= WhiteSpace
/.$BeginAction
skipToken();
$EndAction
./
Token ::= '/' '*' Inside Stars '/'
/.$BeginAction
skipToken();
$EndAction
./
Token ::= SLComment
/.$BeginAction
skipToken();
$EndAction
./
Token ::= Integer
/.$BeginAction
makeToken($_CONSTANT);
$EndAction
./
Token ::= '+'
/.$BeginAction
makeToken($_PLUS);
$EndAction
./
Token ::= '-'
/.$BeginAction
makeToken($_MINUS);
$EndAction
./
Token ::= '*'
/.$BeginAction
makeToken($_STAR);
$EndAction
./
Token ::= '/'
/.$BeginAction
makeToken($_DIVIDE);
$EndAction
./
Token ::= '('
/.$BeginAction
makeToken($_LEFT_PARENTHESIS);
$EndAction
./
Token ::= ')'
/.$BeginAction
makeToken($_RIGHT_PARENTHESIS);
$EndAction
./
Token ::= '='
/.$BeginAction
makeToken($_ASSIGN);
$EndAction
./
Token ::= '['
/.$BeginAction
makeToken($_LEFT_BRACKET);
$EndAction
./
Token ::= ']'
/.$BeginAction
makeToken($_RIGHT_BRACKET);
$EndAction
./
Token ::= ';'
/.$BeginAction
makeToken($_SEMICOLON);
$EndAction
./
Identifier -> Letter
| Identifier Letter
| Identifier Digit
Integer -> Digit
| Integer Digit
WhiteSpace -> WSChar
| WhiteSpace WSChar
Inside ::= Inside Stars NotSlashOrStar
| Inside '/'
| Inside NotSlashOrStar
| $empty
Stars -> '*'
| Stars '*'
SLComment ::= '/' '/'
| SLComment NotEol
WSChar -> Space
| Eol
| CtlCharNotWS
Letter -> LowerCaseLetter
| UpperCaseLetter
| _
| '$'
| '\u0080..\ufffe'
LowerCaseLetter -> a | b | c | d | e | f | g | h | i | j | k | l | m |
n | o | p | q | r | s | t | u | v | w | x | y | z
UpperCaseLetter -> A | B | C | D | E | F | G | H | I | J | K | L | M |
N | O | P | Q | R | S | T | U | V | W | X | Y | Z
Digit -> 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
SpecialNotStar -> '+' | '-' | '/' | '(' | ')' | '"' | '!' | '@' | '`' | '~' |
'%' | '&' | '^' | ':' | ';' | "'" | '\' | '|' | '{' | '}' |
'[' | ']' | '?' | ',' | '.' | '<' | '>' | '=' | '#'
SpecialNotSlash -> '+' | '-' | -- exclude the star as well
'(' | ')' | '"' | '!' | '@' | '`' | '~' |
'%' | '&' | '^' | ':' | ';' | "'" | '\' | '|' | '{' | '}' |
'[' | ']' | '?' | ',' | '.' | '<' | '>' | '=' | '#'
NotSlashOrStar -> Letter
| Digit
| SpecialNotSlash
| WSChar
Eol -> LF
| CR
NotEol -> Letter
| Digit
| Space
| '*'
| SpecialNotStar
| HT
| FF
| CtlCharNotWS
$End