spread0.atg

来自「一个Modula-2语言分析器」· ATG 代码 · 共 28 行

ATG
28
字号
COMPILER Spreadsheet
(* Grammar for a very simple spreadsheet *)

IGNORE CHR(9) .. CHR(13)
IGNORE CASE

COMMENTS FROM "(*" TO "*)"

CHARACTERS
  letter     = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" .
  digit      = "0123456789" .

TOKENS
  identifier = letter .
  number     = digit { digit} .

PRODUCTIONS
  Spreadsheet = { Command } "QUIT" .
  Command     = [ Expression ]
                ("UP" | "DOWN" | "LEFT" | "RIGHT" | "HOME" | "GOTO" Cell |
                "ENTER" ) .
  Expression  = [ "+" | "-" ] Term { "+" Term | "-" Term } .
  Term        = Factor { "*" Factor | "/" Factor | "%" Factor } .
  Factor      = number | Cell | "(" Expression ")" .
  Cell        = identifier number .

END Spreadsheet.

⌨️ 快捷键说明

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