• Keine Ergebnisse gefunden

MicroJava – Grammatik

N/A
N/A
Protected

Academic year: 2022

Aktie "MicroJava – Grammatik"

Copied!
1
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

MicroJava – Grammatik

Program = "program" ident

{ConstDecl|VarDecl|ClassDecl}

"{" {MethodDecl} "}".

ConstDecl = "final" Type ident "=" (number|charConst) ";".

VarDecl = Type ident {"," ident} ";".

ClassDecl = "class" ident "{" {VarDecl} "}".

MethodDecl = (Type|"void") ident "(" [FormPars] ")"

{VarDecl} Block.

FormPars = Type ident {"," Type ident}.

Type = ident ["[" "]"].

Block = "{" {Statement} "}".

Statement = Designator ("=" Expr

|"(" [ActPars] ")"

|"++"

|"--"

) ";"

| "if" "(" Condition ")" Statement ["else"Statement]

| "while" "(" Condition ")" Statement

| "do" Statement "while" "(" Condition ")" ";"

| "break" ";"

| "return" [Expr] ";"

| "read" "(" Designator ")" ";"

| "print" "(" Expr ["," number] ")" ";"

| Block | ";".

ActPars = Expr {"," Expr}.

Condition = CondTerm {"||" CondTerm}.

CondTerm = CondFact {"&&" CondFact}.

CondFact = Expr Relop Expr.

Relop = "=="|"!="|">"|">="|"<"|"<=".

Expr = ["–"] Term {Addop Term}.

Term = Factor {Mulop Factor}.

Factor = Designator ["(" [ActPars] ")"]

| number | charConst

| "new" ident ["[" Expr "]"]

| "(" Expr ")".

Designator = ident {"." ident|"[" Expr "]"}.

Addop = "+"|"".

Mulop = "*"|"/"|"%".

Referenzen

ÄHNLICHE DOKUMENTE

CondFact = Expr

erlaube Kommentare an beliebiger Stelle.

– Der error-Methode wird die Meldung übergeben – Manche Fehlermeldungen benötigen Parameter. • Zusätzliche Parameter

public Parser parser; // target for errors public Scope curScope; // current scope. private int level; // nesting level of

public Parser parser; // target for errors public Scope curScope; // current scope. private int curLevel; // nesting level of

[r]

[r]

private int curLevel; // nesting level of current scope public Tab(Parser parser);. class TabImpl extends Tab { public