亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? umbriel1.atg

?? COCO類似C的編譯器
?? ATG
字號(hào):
COMPILER Umbriel
/* COCO/R - like  Grammar for Umbriel

   Umbriel is a simple Modula-2 / Pascal like language

   This grammar is not LL(1), so a Coco/R generated parser will be incorrect
   The description here is intended to aid semantic understanding! */

CHARACTERS
  eol      = CHR(13) .
  letter   = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" .
  digit    = "0123456789" .
  noQuote1 = ANY - "'" - eol .
  noQuote2 = ANY - '"' - eol .

IGNORE
  CHR(9) .. CHR(13)
  COMMENTS FROM '(*' TO '*)' NESTED
  /* The language is case sensitive */

TOKENS
  identifier =  letter { letter | digit } .
  char       =  "'" [ noQuote1 ] "'" | '"' [ noQuote2 ] '"' | digit {digit} "C" .

/* The xxC variation uses decimal numbers, not the octal form of Wirth's other
   languages */

  integer    =    digit { digit }
                | digit { digit }  CONTEXT ("..") .

  real       =  digit { digit } "." { digit }
                [ ( "E" | "e" ) [ "+" | "-" ] digit { digit } ] .

  string     =  "'" { noQuote1 } "'" | '"' { noQuote2 } '"' .

PRODUCTIONS

  Umbriel               = "MODULE" ModuleIdentifier ";"
                             Block ModuleIdentifier "." .

  ModuleIdentifier      = identifier .

/* The same identifier appears in both places */

  Block                 = { NonVarDeclaration }
                          { NonProcDeclaration }
                          [ "BEGIN" StatementSequence ] "END" .

  NonVarDeclaration     =   "CONST" { ConstantDeclaration ";" }
                          | "TYPE" { TypeDeclaration ";" }
                          | ProcedureDeclaration ";" .

  NonProcDeclaration    =   "CONST" { ConstantDeclaration ";" }
                          | "TYPE" { TypeDeclaration ";" }
                          | "VAR" { VariableDeclaration ";" } .

/* Declarations may be mixed in order, but for all identifiers
   declaration-before-use is required.  The syntax prevents "global"
   variables from being seen in procedures directly */

  ConstantDeclaration   = ConstIdentifier "=" ConstExpression .
  ConstIdentifier       = identifier .
  ConstExpression       = Expression .

/* A ConstExpression may only contain constants, literals, and some standard
   function calls */

  TypeDeclaration       = TypeIdentifier "=" Type .
  Type                  = TypeIdentifier | ArrayType | RecordType .
  TypeIdentifier        = identifier .

  ArrayType             = "ARRAY" IndexType { "," IndexType } "OF" Type .
  IndexType             = "[" ConstExpression ".." ConstExpression "]" .

/* The index type is an anonymous subrange type.  It has to be declared like
   this; implicit subranges like CHAR and BOOLEAN may not be used by quoting
   the type names. */

  RecordType            = "RECORD" FieldListSequence "END" .
  FieldListSequence     = FieldList { ";" FieldList } .
  FieldList             = [ IdentList ":" Type ] .
  IdentList             = VariableIdentifier { "," VariableIdentifier } .
  VariableIdentifier    = identifier .

/* The syntax allows the "permissive" use of extra ; symbols as in Modula-2,
   and also completely empty records, as in Wirth's other languages */

  VariableDeclaration   = IdentList ":" TypeIdentifier .

/* Unlike Modula-2 and Pascal, a variable has to be declared in terms of a
   named type.  This is to encourage simple abstraction. */

  ProcedureDeclaration  = ProperProcDeclaration | FunctionDeclaration .

  ProperProcDeclaration = "PROCEDURE" ProcedureIdentifier
                           [ "(" [ FormalParameters ] ")" ]
                          ";" Block ProcedureIdentifier .
  ProcedureIdentifier   = identifier .

  FunctionDeclaration   = "PROCEDURE" FunctionIdentifier
                           "(" [ FormalParameters ] ")" ":" ResultType
                          ";" Block FunctionIdentifier .
  FunctionIdentifier    = identifier .
  ResultType            = ScalarTypeIdentifier .
  ScalarTypeIdentifier  = TypeIdentifier .

/* Procedures may omit the ( brackets ) if there are no parameters.
   Functions may have no parameters, but require the ( brackets ),
   as in Modula-2.
   Functions may only return INTEGER, REAL, CHAR, COLORS or BOOLEAN values */

  FormalParameters      = FormalParameter { ";" FormalParameter } .
  FormalParameter       = ValueSpecification | VariableSpecification .
  ValueSpecification    = IdentList ":" TypeIdentifier .
  VariableSpecification = "VAR" IdentList ":" TypeIdentifier .

  StatementSequence     = Statement { ";" Statement } .

  Statement             = [  Assignment | ProcedureCall
                           | IfStatement | CaseStatement
                           | WhileStatement | RepeatStatement
                           | ForStatement | LoopStatement
                           | ExitStatement | ReturnStatement ] .

/* The statements are as in Modula-2, other than WITH */

  Assignment            = VarDesignator ":=" Expression .
  VarDesignator         = VariableIdentifier { Selector } .
  Selector              =  "." VariableIdentifier | "[" IndexList "]" .
  IndexList             = OrdinalExpression { "," OrdinalExpression } .

  ProcedureCall         = ProcedureIdentifier [ "(" [ ActualParameters ] ")" ] .
  ActualParameters      = Expression [ FormatSpecifier ]
                          { "," Expression [ FormatSpecifier ] } .
  FormatSpecifier       = ":" IntegerExpression [ ":" IntegerExpression ] .

/* FormatSpecifier is only allowed in calls to the standard procedures
   Write and WriteLn */

  IfStatement           = "IF" BooleanExpression "THEN" StatementSequence
                          { "ELSIF" BooleanExpression
                            "THEN" StatementSequence }
                          [ "ELSE" StatementSequence ]
                          "END" .

  CaseStatement         = "CASE" Expression "OF"
                             Case
                          { "|" Case }
                          [ "ELSE" StatementSequence ]
                          "END" .
  Case                  = [ CaseLabelList ":" StatementSequence ] .
  CaseLabelList         = CaseLabels { "," CaseLabels } .
  CaseLabels            = ConstExpression [ ".." ConstExpression ] .

/* The syntax allows the "permissive" use of extra | symbols as in Modula-2 */

  WhileStatement        = "WHILE" BooleanExpression "DO"
                             StatementSequence
                          "END" .

  RepeatStatement       = "REPEAT"
                             StatementSequence
                          "UNTIL" BooleanExpression .

  ForStatement          = "FOR" VariableIdentifier ":=" OrdinalExpression
                          "TO" OrdinalExpression [ "BY" ConstExpression ] "DO"
                             StatementSequence
                          "END" .

/* The BY step requires a constant expression so that the compiler can decide
   at compile time whether it is a "to" or "downto" loop.  The control
   variable must be declared locally, and the implementation tries to detect
   situations where it would be threatened (changed in the body of the loop) */

  LoopStatement         = "LOOP" StatementSequence "END" .

  ExitStatement         = "EXIT" .

/* An ExitStatement is only allowed within the StatementSequence of a
   LoopStatement.  It transfers control out of the closest enclosing
   LoopStatement. */

  ReturnStatement       = "RETURN" [ Expression ] .

/* A ReturnStatement within a function must incorporate an Expression; within
   a regular procedure or a program block it must not incorporate an
   Expression. */

  BooleanExpression     = Expression .
  OrdinalExpression     = Expression .
  IntegerExpression     = Expression .

  Expression            = SimpleExpression [ Relation SimpleExpression ] .
  SimpleExpression      = [ "+" | "-" ] Term { AddOperator Term } .
  Term                  = Factor { MulOperator Factor } .
  Factor                =   ConstantLiteral
                          | ConstIdentifier
                          | VarDesignator
                          | FunctionCall
                          | NotOperator Factor
                          | "(" Expression ")" .

  ConstantLiteral       = integer | char | real | string .

  FunctionCall          = FunctionIdentifier "(" [ ActualParameters ] ")" .

  NotOperator           = "NOT" | "~" /* synonyms */ .
  MulOperator           = "*" | "/" | "DIV" | "MOD" | AndOperator .
  AndOperator           = "AND" | "&"  /* synonyms */ .
  AddOperator           = "+" | "-" | "OR" .
  Relation              = "=" | "#" | "<>" | "<" | "<=" | ">" | ">=" .

END Umbriel.

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久久国产精品人| 国产精品国产三级国产普通话蜜臀 | 91免费观看视频| 免费久久精品视频| 亚洲丝袜自拍清纯另类| 午夜精品在线看| 欧美国产日韩精品免费观看| 欧美区视频在线观看| 成人深夜福利app| 久久精品国产澳门| 五月开心婷婷久久| 亚洲免费观看高清完整版在线| 26uuu色噜噜精品一区二区| 欧美日韩成人综合在线一区二区| 成人免费毛片aaaaa**| 久久se精品一区二区| 亚洲成人综合在线| 亚洲精品你懂的| 18欧美乱大交hd1984| 国产欧美日本一区视频| 欧美tickling网站挠脚心| 欧美日韩久久久久久| 在线精品视频免费观看| 91同城在线观看| 成人午夜精品在线| 懂色av中文字幕一区二区三区| 午夜亚洲福利老司机| 一区二区三区四区精品在线视频| 欧美国产日韩a欧美在线观看| 欧美精品一区在线观看| 欧美一区二区三区在线观看| 欧美猛男超大videosgay| 欧美亚洲日本国产| 欧洲精品一区二区| 成人黄色av电影| 成人免费av资源| 99热精品一区二区| 99精品国产热久久91蜜凸| 成年人国产精品| 91丨九色丨黑人外教| 99国产麻豆精品| 色噜噜久久综合| av不卡在线播放| 91麻豆视频网站| 欧美在线观看视频在线| 欧美三级韩国三级日本三斤| 色噜噜狠狠色综合欧洲selulu| 色8久久精品久久久久久蜜 | 一本一道波多野结衣一区二区| 成人黄色av电影| 99re6这里只有精品视频在线观看 99re8在线精品视频免费播放 | 国产伦精品一区二区三区免费| 欧美色倩网站大全免费| 欧美在线一区二区三区| 7777精品伊人久久久大香线蕉经典版下载 | 久久久久久久久久久黄色| 久久蜜桃一区二区| 国产精品久久久久aaaa| 亚洲麻豆国产自偷在线| 艳妇臀荡乳欲伦亚洲一区| 日韩成人免费电影| 国产乱人伦偷精品视频不卡| 国产精品成人午夜| 日韩黄色片在线观看| 国产网站一区二区| 亚洲人成在线观看一区二区| 亚洲成a天堂v人片| 看电影不卡的网站| 成人一区二区视频| 欧美日韩中文字幕一区二区| 欧美tickle裸体挠脚心vk| 国产精品久久久久久久久搜平片| 亚洲品质自拍视频| 日本成人中文字幕| 成人夜色视频网站在线观看| 91官网在线观看| 精品久久一区二区| 亚洲日本乱码在线观看| 青青草97国产精品免费观看无弹窗版| 久久69国产一区二区蜜臀| 99精品国产91久久久久久| 欧美一区二区三区男人的天堂| 久久精品视频免费观看| 一区二区国产盗摄色噜噜| 狠狠色狠狠色合久久伊人| 99精品欧美一区| 欧美变态tickling挠脚心| 亚洲三级电影网站| 国内欧美视频一区二区| 在线亚洲欧美专区二区| 久久中文字幕电影| 亚洲一区二区四区蜜桃| 国产精品99久久久久久似苏梦涵 | 亚洲精品在线观看视频| 亚洲日本乱码在线观看| 国产在线播放一区| 欧美性xxxxx极品少妇| 国产香蕉久久精品综合网| 亚洲成a天堂v人片| 91麻豆视频网站| 午夜成人免费视频| 成人午夜大片免费观看| 日韩一区二区视频在线观看| 亚洲图片激情小说| 国产成人免费视频网站| 欧美一区二区三区免费视频| 亚洲视频狠狠干| 国产suv一区二区三区88区| 51精品久久久久久久蜜臀| 中文字幕日韩欧美一区二区三区| 久热成人在线视频| 欧美精品久久一区二区三区| 亚洲免费在线视频| 成人福利在线看| 久久精品一区蜜桃臀影院| 男女男精品网站| 欧美日韩国产bt| 夜夜夜精品看看| av一本久道久久综合久久鬼色| 久久久综合激的五月天| 美女免费视频一区二区| 欧美二区乱c少妇| 亚洲妇女屁股眼交7| 在线免费观看一区| 亚洲免费视频中文字幕| 91在线视频网址| 中文字幕一区二区三区精华液 | 欧美狂野另类xxxxoooo| 悠悠色在线精品| 一本色道久久综合狠狠躁的推荐 | 粉嫩嫩av羞羞动漫久久久| 精品日韩一区二区| 国内精品免费**视频| 337p粉嫩大胆噜噜噜噜噜91av| 麻豆精品视频在线观看免费| 91精品黄色片免费大全| 日韩高清欧美激情| 日韩亚洲欧美高清| 国产在线一区观看| 久久久精品免费免费| 成人网在线免费视频| 亚洲人成网站色在线观看| 91农村精品一区二区在线| 亚洲精品免费在线观看| 欧美亚洲国产一区在线观看网站 | 精品第一国产综合精品aⅴ| 久久狠狠亚洲综合| 久久久久久97三级| heyzo一本久久综合| 亚洲女与黑人做爰| 欧美精品三级日韩久久| 久久爱www久久做| 国产精品久久毛片a| 色妞www精品视频| 日韩精品五月天| 久久综合色婷婷| www.欧美精品一二区| 亚洲一二三四在线| 日韩欧美国产综合一区| 国产精品综合一区二区| 亚洲色图欧洲色图| 4438x成人网最大色成网站| 久久99国产精品免费| 中文字幕第一区综合| 欧美影视一区二区三区| 蜜桃传媒麻豆第一区在线观看| 久久免费精品国产久精品久久久久 | 国产亚洲自拍一区| 色综合久久久久| 麻豆精品在线观看| 国产精品毛片久久久久久久| 欧美日韩在线播放三区四区| 国内不卡的二区三区中文字幕| 国产精品人人做人人爽人人添| 欧美日韩亚洲国产综合| 国产一区不卡在线| 亚洲精品乱码久久久久久久久 | 日韩欧美色综合| 成人激情动漫在线观看| 亚洲成av人片在www色猫咪| 久久影院电视剧免费观看| 色女孩综合影院| 精品一区二区av| 一区二区三区免费在线观看| 欧美videossexotv100| 一本高清dvd不卡在线观看 | 在线免费av一区| 国产在线播放一区三区四| 亚洲夂夂婷婷色拍ww47| 久久综合色鬼综合色| 欧美唯美清纯偷拍| 成人一二三区视频| 久久国产生活片100| 亚洲综合成人在线视频| 国产人成亚洲第一网站在线播放| 欧美区在线观看| 一本久久a久久免费精品不卡| 精品一区免费av| 亚洲成a人片在线不卡一二三区| 中文字幕在线不卡视频|