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

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

?? crq.pas

?? 一個(gè)Pascal語(yǔ)言分析器
?? PAS
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
(* CR   Main Module of Coco/R
   ==   =====================

   This is a compiler generator that produces a scanner and a parser
   from an attributed grammar, and optionally a complete small compiler.

   Original code in Oberon by Hanspeter Moessenboeck, ETH Zurich
   Ported at ETH to Apple Modula, and thence to JPI-2 Modula.

   JPI version of 27 January 1991 was then modified to make more
   portable by Pat Terry, January - October 1992

   This is the IBM-PC MS-DOS Turbo Pascal version for generating Turbo Pascal
   based on the port first done by Volker Pohlers, October 1995

   This version outputs error messages in "standard" form for use with editors

Usage:
          COCOR [-options] GrammarName[.atg] [$options]

Input:
  attributed grammar   input grammar
  scanner.frm          frame file
  parser.frm           frame file
  compiler.frm         frame file (optional)

(Frame files must be in the sme directory as the grammar, or may be
found on a path specified by DOS environment variable CRFRAMES).

Output:
  <GrammarName>S.pas  generated scanner
  <GrammarName>P.pas  generated parser
  <GrammarName>.err   error numbers and corresponding error messages
  <GrammarName>.lst   source listing with error messages and trace output

Optionally

  <GrammarName>G.pas  generated symbolic names
  <GrammarName>.pas   generated compiler main module

Implementation restrictions
  1  too many nodes in graph (>1500)                 CRTable.NewNode
  2  too many symbols (>500)                         CRTable.NewSym, MovePragmas
  3  too many sets (>256 ANY-syms or SYNC syms)      CRTable.NewSet,
  4  too many character classes (>250)               CRTable.NewClass
  5  too many conditions in generated code (>100)    CRX.NewCondSet
  6  too many token names in "NAMES" (>100)          CRTable.NewName
  7  too many states in automata (>500)              CRA.NewState

Trace output
(To activate a trace switch, write "${letter}" in the input grammar, or
invoke Coco with a second command line parameter)

  A  Prints states of automaton

  C  Generates complete compiler module

  F  Prints start symbols and followers of nonterminals.

  G  Prints the top-down graph.

  I  Trace of start symbol set computation.

  L  Forces a listing (otherwise a listing is only printed if errors are found).
  
  N  Uses default names for symbol value constants.  This generates an
     extra module <grammar name>G, and corresponding import statements
     using constant names instead of numbers for symbols in parser and
     scanner.
     The constants are used unqualified and hence all needed constants
     have to be imported; so a complete import list for these constants
     is generated.
     There is no decision whether a constant is actually needed.

     The default conventions are (only terminals or pragmas can have names):
     single character   -->  <ASCII name (lowercase)>Sym
          eg. "+"       -->  plusSym
     character string   -->  <string>Sym
          eg. "PROGRAM" -->  PROGRAMSym
     scanner token      -->  <token name>Sym
          eg. ident     -->  identSym

  O  Trace of follow set computation (not yet implemented).

  P  Generates parser only

  Q  Generates error messages in quiet form for interfacing with editor

  S  Prints the symbol list.

  T  Suppresses generation of units (grammar tests only).

  X  Prints a cross reference list.

==========================================================================*)

PROGRAM CR;

USES CRS, (* lst, src, errors, directory, Error, CharAt *)
     CRP, (* Parse *)
     CRC, CRTable, CRA, CRX, FileIO;

CONST
  ATGExt = '.atg';
  LSTExt = '.lst';
  Version = '1.48q (for Pascal)';
  ReleaseDate = '9 July 1999';

VAR
  Options, GrammarName, ATGFileName, lstFileName : STRING;
  ll1 : BOOLEAN; (* TRUE, if grammar is LL(1) *)
  IDE, ok : BOOLEAN;  (* TRUE, if grammar tests ok so far *)
  P : INTEGER;   (* ParamCount *)

(* ------------------- Source Listing and Error handler -------------- *)

  TYPE
    CHARSET = SET OF CHAR;
    Err = ^ErrDesc;
    ErrDesc = RECORD
      nr, line, col: INTEGER;
      next: Err
    END;

  CONST
    TAB  = #09;
    _LF  = #10;
    _CR  = #13;
    _EF  = #0;
    LineEnds : CHARSET = [_CR, _LF, _EF];

  VAR
    firstErr, lastErr: Err;
    Extra : INTEGER;

  PROCEDURE StoreError (nr, line, col: INTEGER; pos: LONGINT); FAR;
  (* Store an error message for later printing *)
    VAR
      nextErr: Err;
    BEGIN
      NEW(nextErr);
      nextErr^.nr := nr; nextErr^.line := line; nextErr^.col := col;
      nextErr^.next := NIL;
      IF firstErr = NIL
        THEN firstErr := nextErr
        ELSE lastErr^.next := nextErr;
      lastErr := nextErr;
      INC(errors)
    END;

  PROCEDURE GetLine (VAR pos  : LONGINT;
                     VAR line : STRING;
                     VAR eof  : BOOLEAN);
  (* Read a source line. Return empty line if eof *)
    VAR
      ch: CHAR;
      i:  INTEGER;
    BEGIN
      i := 1; eof := FALSE; ch := CharAt(pos); INC(pos);
      WHILE NOT (ch IN LineEnds) DO BEGIN
        line[i] := ch; INC(i); ch := CharAt(pos); INC(pos)
      END;
      line[0] := Chr(i-1);
      eof := (i = 1) AND (ch = _EF);
      IF ch = _CR THEN BEGIN (* check for MsDos *)
        ch := CharAt(pos);
        IF ch = _LF THEN BEGIN INC(pos); Extra := 0 END
      END
    END;

  PROCEDURE PrintErr (line : STRING; nr, col: INTEGER);
  (* Print an error message *)

    PROCEDURE Msg (s: STRING);
      BEGIN
        Write(lst, s)
      END;

    PROCEDURE Pointer;
      VAR
        i : INTEGER;
      BEGIN
        Write(lst, '*****  ');
        i := 0;
        WHILE i < col + Extra - 2 DO BEGIN
          IF line[i] = TAB
            THEN Write(lst, TAB)
            ELSE Write(lst, ' ');
          INC(i)
        END;
        Write(lst, '^ ')
      END;

    BEGIN
      IF NOT IDE THEN Pointer;
      CASE nr OF
          0 : Msg('EOF expected');
          1 : Msg('ident expected');
          2 : Msg('string expected');
          3 : Msg('badstring expected');
          4 : Msg('number expected');
          5 : Msg('"COMPILER" expected');
          6 : Msg('"USES" expected');
          7 : Msg('"," expected');
          8 : Msg('";" expected');
          9 : Msg('"PRODUCTIONS" expected');
         10 : Msg('"=" expected');
         11 : Msg('"." expected');
         12 : Msg('"END" expected');
         13 : Msg('"CHARACTERS" expected');
         14 : Msg('"TOKENS" expected');
         15 : Msg('"NAMES" expected');
         16 : Msg('"PRAGMAS" expected');
         17 : Msg('"COMMENTS" expected');
         18 : Msg('"FROM" expected');
         19 : Msg('"TO" expected');
         20 : Msg('"NESTED" expected');
         21 : Msg('"IGNORE" expected');
         22 : Msg('"CASE" expected');
         23 : Msg('"+" expected');
         24 : Msg('"-" expected');
         25 : Msg('".." expected');
         26 : Msg('"ANY" expected');
         27 : Msg('"CHR" expected');
         28 : Msg('"(" expected');
         29 : Msg('")" expected');
         30 : Msg('"|" expected');
         31 : Msg('"WEAK" expected');
         32 : Msg('"[" expected');
         33 : Msg('"]" expected');
         34 : Msg('"{" expected');
         35 : Msg('"}" expected');
         36 : Msg('"SYNC" expected');
         37 : Msg('"CONTEXT" expected');
         38 : Msg('"<" expected');
         39 : Msg('">" expected');
         40 : Msg('"(." expected');
         41 : Msg('".)" expected');
         42 : Msg('not expected');
         43 : Msg('invalid TokenFactor');
         44 : Msg('invalid Factor');
         45 : Msg('invalid Factor');
         46 : Msg('invalid Term');
         47 : Msg('invalid Symbol');
         48 : Msg('invalid SimSet');
         49 : Msg('invalid NameDecl');
         50 : Msg('this symbol not expected in TokenDecl');
         51 : Msg('invalid TokenDecl');
         52 : Msg('invalid Declaration');
         53 : Msg('invalid Declaration');
         54 : Msg('invalid Declaration');
         55 : Msg('this symbol not expected in CR');
         56 : Msg('invalid CR');
       
        102 : Msg('string literal may not extend over line end');
        103 : Msg('a literal must not have attributes');
        104 : Msg('this symbol kind not allowed in production');
        105 : Msg('attribute mismatch between declaration and use');
        106 : Msg('undefined string in production');

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线观看日韩电影| 国产一区二区三区在线观看免费视频 | 欧美亚洲国产一卡| 精品国产乱码久久久久久久久| 亚洲电影一级黄| 91精品国产色综合久久不卡电影| 国产成人99久久亚洲综合精品| 欧美疯狂性受xxxxx喷水图片| 一区二区三区在线视频免费| 日韩一二三四区| 色天使久久综合网天天| 国产成人自拍网| 久久国产夜色精品鲁鲁99| 一区二区国产盗摄色噜噜| 亚洲国产激情av| 3d动漫精品啪啪一区二区竹菊| 99久久久精品| 国产91综合网| 国产精品综合网| 老司机午夜精品| 日韩精品久久理论片| 亚洲视频综合在线| 中文无字幕一区二区三区 | 精品国产亚洲在线| 欧美日韩高清在线播放| 一道本成人在线| 不卡视频免费播放| 国产91精品精华液一区二区三区| 美日韩一区二区| 色国产综合视频| kk眼镜猥琐国模调教系列一区二区| 国产呦萝稀缺另类资源| 激情综合色播激情啊| 日本aⅴ亚洲精品中文乱码| 亚洲国产中文字幕| 亚洲一区二区三区美女| 亚洲一区二区三区自拍| 亚洲已满18点击进入久久| 亚洲精品少妇30p| 一二三区精品视频| 亚洲国产日产av| 亚洲成av人片一区二区| 日韩精品高清不卡| 美女视频第一区二区三区免费观看网站| 日韩不卡一区二区三区| 精品影视av免费| 国产麻豆91精品| 成人动漫中文字幕| 色综合久久综合中文综合网| 91黄色在线观看| 欧美日韩精品久久久| 4438x亚洲最大成人网| 精品少妇一区二区三区| 久久精品视频免费| 中文字幕亚洲一区二区va在线| 1000精品久久久久久久久| 成人91在线观看| 色一区在线观看| 欧美日韩激情在线| 精品国产一区二区三区忘忧草| 国产欧美精品日韩区二区麻豆天美| 国产精品家庭影院| 亚洲在线中文字幕| 日本中文字幕一区二区有限公司| 久久精品免费观看| 岛国精品一区二区| 91国产成人在线| 欧美大片在线观看| 中文一区二区在线观看| 亚洲一二三四在线| 久久99精品久久久| 不卡免费追剧大全电视剧网站| 欧美在线免费播放| 精品精品欲导航| 亚洲欧洲日韩综合一区二区| 亚洲大片免费看| 国产盗摄女厕一区二区三区| 色婷婷国产精品综合在线观看| 欧美一级精品在线| 国产精品激情偷乱一区二区∴| 午夜免费久久看| 国产精品正在播放| 欧美性生活影院| 中文字幕欧美日韩一区| 日本不卡在线视频| 不卡欧美aaaaa| 欧美一二区视频| 亚洲人快播电影网| 精品亚洲成a人| 色欧美乱欧美15图片| 日韩精品一区二| 一区二区三区精品久久久| 国产麻豆精品在线| 欧美高清激情brazzers| 国产精品美女久久久久久久久 | 国产精品美女久久福利网站| 午夜伦理一区二区| 色综合一区二区三区| 久久美女艺术照精彩视频福利播放| av网站一区二区三区| 日韩美女天天操| 亚洲成人你懂的| 色综合天天狠狠| 国产三级三级三级精品8ⅰ区| 石原莉奈一区二区三区在线观看| 99久久综合狠狠综合久久| 精品动漫一区二区三区在线观看 | 粉嫩一区二区三区在线看| 8x福利精品第一导航| 一区二区三区中文字幕电影| 国产成人在线视频网址| 日韩久久久精品| 天天色综合天天| 在线亚洲人成电影网站色www| 亚洲国产精品99久久久久久久久 | 91蝌蚪国产九色| 欧美激情中文字幕一区二区| 另类调教123区| 91精品视频网| 性做久久久久久| 在线观看日韩高清av| 亚洲免费资源在线播放| av在线免费不卡| 国产精品国产三级国产aⅴ原创| 国精品**一区二区三区在线蜜桃| 日韩三级免费观看| 青青国产91久久久久久| 欧美精品自拍偷拍动漫精品| 亚洲午夜免费视频| 欧美色窝79yyyycom| 亚洲午夜精品17c| 欧美伊人精品成人久久综合97| 亚洲国产综合色| 91麻豆精品91久久久久久清纯 | 九色综合国产一区二区三区| 日韩午夜av一区| 精品一区二区三区香蕉蜜桃| 日韩精品中文字幕在线一区| 另类小说图片综合网| 精品国产乱码91久久久久久网站| 国产在线精品免费| 国产色91在线| 色综合天天综合狠狠| 夜色激情一区二区| 欧美日韩一区高清| 欧美a级理论片| 久久久久久夜精品精品免费| 国产成人综合自拍| 国产精品萝li| 色欧美片视频在线观看在线视频| 亚洲成人福利片| 日韩欧美亚洲国产另类| 韩国理伦片一区二区三区在线播放| 久久九九久精品国产免费直播| 粉嫩13p一区二区三区| 亚洲欧美日韩综合aⅴ视频| 欧美系列日韩一区| 日韩电影在线看| 国产欧美视频一区二区| 97精品久久久午夜一区二区三区| 亚洲成av人片| 国产日产亚洲精品系列| 97精品久久久午夜一区二区三区| 亚洲国产精品嫩草影院| 欧美精品一区二区三区在线播放 | 欧美精品一区男女天堂| 成人在线综合网站| 亚洲一区二区三区视频在线播放 | 91精彩视频在线| 麻豆成人久久精品二区三区小说| 久久九九全国免费| 色8久久精品久久久久久蜜| 日韩国产在线观看| 久久精品视频一区二区三区| 一本大道久久a久久综合婷婷| 蜜臀a∨国产成人精品| 国产精品美女久久久久久久| 欧美福利视频一区| 成人久久18免费网站麻豆| 香蕉加勒比综合久久| 国产精品入口麻豆原神| 亚洲另类一区二区| 精品国产一区二区三区四区四| fc2成人免费人成在线观看播放| 日韩成人午夜电影| 亚洲天天做日日做天天谢日日欢| 欧美一区二区三区电影| 91在线码无精品| 国产一区二区影院| 天堂久久一区二区三区| 中文字幕亚洲欧美在线不卡| 日韩美女在线视频| 欧美亚一区二区| 成人免费看的视频| 激情另类小说区图片区视频区| 亚洲一区二区三区中文字幕| 国产精品女主播在线观看| 日韩一二三区视频| 欧美群妇大交群中文字幕| 97精品超碰一区二区三区|