Language "SL" #1 Lexemes
## Identifiers
Lexis Id : id ::= ('a'-'z'|'A'-'Z') ('a'-'z'|'A'-'Z'|'0'-'9')* Semantics id[[ Id:id ]] : => ids
## Numerals
Syntax Int : int ::= '-'? _ nat Lexis Nat : nat ::= ('0'-'9')+ Semantics int-val[[ Int:int ]] : => integers
Rule
int-val[[ '-' Nat ]] = integer-negate int-val[[Nat]] Rule int-val[[ Nat ]] = decimal-natural \"Nat\"
## Strings
Syntax String : string ::= '"' _ string-chars _ '"' Lexis StringChars : string-chars ::= string-char* string-char ::= ~( '"' | '\n' ) Semantics string-val[[ String:string ]] : => strings
Rule
string-val[[ '"' StringChars '"' ]] = \"StringChars\"