Les lexèmes (tokens)
supprimés sont:
":", "def", "do", "set", "val", "var"
Les lexèmes (tokens)
ajoutés sont:
"return"
Modifications dans la parte 1 du compilateur
-
Mettre à jour la liste des lexèmes dans l'objet
Tokens et
-
Modifier la liste des mots-clés dans la classe
Scanner .
Les productions supprimées sont:
AndExpression
OrExpression
Les productions ajoutées sont:
Block = "{" { Statement } [ "return" Expression ] "}
Les productions modifiées sont:
FieldDecl = Formal ";"
MethodDef = Formal "(" [ Formal { "," Formal} ] ")" Block
Formal = Type ident
Statement = "while" "(" Expression ")" "{" { Statement } "}"
| Formal "=" Expression ";"
| ident "=" Expression ";"
| Expression ";"
| "printInt" "(" Expression ")" ";"
| "printChar" "(" Expression ")" ";"
Expression = "if" "(" Expression ")" Expression [ "else" Expression ]
| CmpExpression
SumOp = "+"
| "-"
| "||"
ProdOp = "*"
| "/"
| "%"
| "&&"
Factor = ident
| number
| string
| "true"
| "false"
| "this"
| "null"
| "readInt"
| "readChar"
| "(" Expression ")"
| Block
| "new" ident Params
| Factor "." ident
| Factor "." ident Params
Modifications dans la partie 1 du compilateur
-
Ajouter la déclaration de la variable membre
pushedBack dans la classe Scanner .
-
Ajouter l'instruction
pushedBack match
{ ... } dans la méthode nextToken
de la classe Scanner .
-
Ajouter la méthode
peekAhead dans la classe
Scanner .
|