Skip to content

LaBottle/Compiler

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Compiler

A Simple Grammar Analysis and Quad Generation made by C# and WinForm. Info: The software language is Chinese

Rules

Program→ ProgramHead VarDecpart ProgramBody ProgramHead→ 'program' ID

VarDecpart→ ε | 'var' VarDecList VarDecList→ VarIdList {VarIdList} VarIdList→ TypeName ID {',' ID} ';' TypeName→'integer' | 'float'

ProgramBody→ε | ProcDec {ProcDec} ProcDec→ 'procedure' ID '(' ParamList ')' ';' VarDecpart ProcBody

ParamList→ ε | Param {';' Param} Param→ TypeName ID {',' ID}

ProcBody→ 'begin' StmList 'end'

StmList→ ε | Stm {';' Stm}

Stm→ConditionalStm | LoopStm | InputStm | OutputStm | CallStm | AssignmentStm InputStm→'read' ID OutputStm→'write' Exp CallStm→ ID '(' ActParamList ')' AssignmentStm→ ID '=' Exp ConditionalStm→'if' ConditionalExp 'then' StmList 'else' StmList 'fi' LoopStm→'while' ConditionalExp 'do' StmList 'endwh'

ActParamList→ ε | Exp {',' Exp}

Exp→ Term {'+'|'-' Term} Term→ Factor {'*'|'/' Factor} Factor→ ID | INTC | DECI | '(' Exp ')'

ConditionalExp→RelationExp {'or' RelationExp}
RelationExp→ CompExp {'and' CompExp} CompExp→ Exp CmpOp Exp CmpOp→'<' | '<=' | '>' | '>=| '==' | '<>'

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages