⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 clang1.atg

📁 C/C++词法语法分析程序
💻 ATG
字号:
COMPILER Clang1/* Simple CLANG level 1 parser.   See "Programming Language Translation" by P.D. Terry (Addison Wesley 1986)    Adapted from Pat Terry's distribution*/IGNORE CASECHARACTERS  eol      = CHR(10) .  letter   = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" .  digit    = "0123456789" .  noquote1 = ANY - "'" - eol .  noquote2 = ANY - '"' - eol .IGNORE  CHR(9) .. CHR(13)TOKENS  identifier = letter {letter | digit} .  number     = digit { digit} .  string     =  "'" noquote1 {noquote1} "'" | '"' noquote2 {noquote2} '"' .PRODUCTIONS   Clang1             =  "PROGRAM" ProgIdentifier ";"                            Block "." .   Block              =  [ ConstDeclarations ] [ VarDeclarations ]                         CompoundStatement .   ConstDeclarations  =  "CONST"                            ConstIdentifier "=" number ";" SYNC                            { ConstIdentifier "=" number ";" SYNC } .   VarDeclarations    =  "VAR"                            VarIdentifier { WEAK "," VarIdentifier } ";" SYNC .   CompoundStatement  =  "BEGIN"                            Statement { WEAK ";" Statement }                         "END" .   Statement          =  SYNC [  CompoundStatement | Assignment                               | IfStatement | WhileStatement                               | WriteStatement | ReadStatement ] .                          Assignment         =  VarDesignator ":=" Expression .                             IfStatement        =  "IF" Condition "THEN" Statement .   WhileStatement     =  "WHILE" Condition "DO" Statement .                             WriteStatement     =  "WRITE" [ "(" WriteList ")" ] .                             ReadStatement      =  "READ" "(" VarDesignator { "," VarDesignator } ")" .   Condition          =    "ODD" "(" Expression ")"                         | Expression RelOp Expression SYNC .   WriteList          =  ( Expression | string ) { "," ( Expression | string ) }.                             Expression         =  SYNC ( Term | "+" Term | "-" Term) { AddOp Term } .                             Term               =  Factor { MulOp Factor } .                             Factor             =  SYNC (identifier | number | "(" Expression ")" ) .   VarDesignator      =  VarIdentifier .   AddOp              =  "+" | "-" .   MulOp              =  "*" | "/" .   RelOp              =  "=" | "<>" | "<" | "<=" | ">" | ">=" .   ProgIdentifier     =  identifier .   VarIdentifier      =  identifier .   ConstIdentifier    =  identifier .END Clang1.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -