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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? crs.pas

?? 一個Pascal語言分析器
?? PAS
?? 第 1 頁 / 共 2 頁
字號:
UNIT CRS;
(* Scanner generated by Coco/R (Pascal version) *)

INTERFACE

VAR
  src:         FILE;         (*source/list files. To be opened by the main pgm*)
  lst:         TEXT;
  directory:   STRING;       (*of source file*)
  line, col:   INTEGER;      (*line and column of current symbol*)
  len:         LONGINT;      (*length of current symbol*)
  pos:         LONGINT;      (*file position of current symbol*)
  nextLine:    INTEGER;      (*line of lookahead symbol*)
  nextCol:     INTEGER;      (*column of lookahead symbol*)
  nextLen:     LONGINT;      (*length of lookahead symbol*)
  nextPos:     LONGINT;      (*file position of lookahead symbol*)
  errors:      INTEGER;      (*number of detected errors*)
  Error:       PROCEDURE (nr, line, col: INTEGER; pos: LONGINT);

PROCEDURE Get (VAR sym: INTEGER);
(* Gets next symbol from source file *)

PROCEDURE GetString (pos: LONGINT; len: INTEGER; VAR s: STRING);
(* Retrieves exact string of max length len from position pos in source file *)

PROCEDURE GetName (pos: LONGINT; len: INTEGER; VAR s: STRING);
(* Retrieves name of symbol of length len at position pos in source file *)

FUNCTION CharAt (pos: LONGINT): CHAR;
(* Returns exact character at position pos in source file *)

PROCEDURE _Reset;
(* Reads and stores source file internally *)

IMPLEMENTATION

CONST
  noSym   = 44; (*error token code*)
  (* not only for errors but also for not finished states of scanner analysis *)
  eof   = #26; (*MS-DOS eof*)
  LF    = #10;
  CR    = #13;
  EF    = #0;
  EL    = CR;
  BlkSize = 16384;
TYPE
  BufBlock   = ARRAY [0 .. BlkSize-1] OF CHAR;
  Buffer     = ARRAY [0 .. 31] OF ^BufBlock;
  StartTable = ARRAY [0 .. 255] OF INTEGER;
  GetCH      = FUNCTION (pos: LONGINT) : CHAR;
VAR
  lastCh,
  ch:        CHAR;       (*current input character*)
  curLine:   INTEGER;    (*current input line (may be higher than line)*)
  lineStart: LONGINT;    (*start position of current line*)
  apx:       LONGINT;    (*length of appendix (CONTEXT phrase)*)
  oldEols:   INTEGER;    (*number of _EOLs in a comment*)
  bp, bp0:   LONGINT;    (*current position in buf
                           (bp0: position of current token)*)
  LBlkSize:  LONGINT;    (*BlkSize*)
  inputLen:  LONGINT;    (*source file size*)
  buf:       Buffer;     (*source buffer for low-level access*)
  start:     StartTable; (*start state for every character*)
  CurrentCh: GetCH;

PROCEDURE Err (nr, line, col: INTEGER; pos: LONGINT); FAR;
  BEGIN
    INC(errors)
  END;

PROCEDURE NextCh;
(* Return global variable ch *)
  BEGIN
    lastCh := ch; INC(bp); ch := CurrentCh(bp);
    IF (ch = EL) OR (ch = LF) AND (lastCh <> EL) THEN BEGIN
      INC(curLine); lineStart := bp
    END
  END;

FUNCTION Comment: BOOLEAN;
  LABEL
    999;
  VAR
    level, startLine: INTEGER;
    oldLineStart : LONGINT;
  BEGIN
    level := 1; startLine := curLine; oldLineStart := lineStart;
    IF (ch = '/') THEN BEGIN
      NextCh;
      IF (ch = '*') THEN BEGIN
        NextCh;
        WHILE TRUE DO BEGIN
          IF (ch = '*') THEN BEGIN
            NextCh;
            IF (ch = '/') THEN BEGIN
              DEC(level); NextCh;
              IF level = 0 THEN BEGIN Comment := TRUE; GOTO 999; END
            END
          END ELSE IF ch = EF THEN BEGIN Comment := FALSE; GOTO 999; END
          ELSE NextCh;
        END; (* WHILE TRUE *)
      END ELSE BEGIN
        IF (ch = CR) OR (ch = LF) THEN BEGIN
          DEC(curLine); lineStart := oldLineStart
        END;
        DEC(bp); ch := lastCh; Comment := FALSE;
      END;
    END;
    IF (ch = '(') THEN BEGIN
      NextCh;
      IF (ch = '*') THEN BEGIN
        NextCh;
        WHILE TRUE DO BEGIN
          IF (ch = '*') THEN BEGIN
            NextCh;
            IF (ch = ')') THEN BEGIN
              DEC(level); NextCh;
              IF level = 0 THEN BEGIN Comment := TRUE; GOTO 999; END
            END
          END ELSE IF (ch = '(') THEN BEGIN
            NextCh;
            IF (ch = '*') THEN BEGIN INC(level); NextCh END
          END ELSE IF ch = EF THEN BEGIN Comment := FALSE; GOTO 999; END
          ELSE NextCh;
        END; (* WHILE TRUE *)
      END ELSE BEGIN
        IF (ch = CR) OR (ch = LF) THEN BEGIN
          DEC(curLine); lineStart := oldLineStart
        END;
        DEC(bp); ch := lastCh; Comment := FALSE;
      END;
    END;
    Comment := FALSE;
    999:
  END;

PROCEDURE Get (VAR sym: INTEGER);
  VAR
    state: INTEGER;

  FUNCTION Equal (s: STRING): BOOLEAN;
    VAR
      i: INTEGER;
      q: LONGINT;
    BEGIN
      IF nextLen <> Length(s) THEN BEGIN Equal := FALSE; EXIT END;
      i := 1; q := bp0;
      WHILE i <= nextLen DO BEGIN
        IF CurrentCh(q) <> s[i] THEN BEGIN Equal := FALSE; EXIT END;
        INC(i); INC(q)
      END;
      Equal := TRUE
    END;

  PROCEDURE CheckLiteral;
    BEGIN
      CASE CurrentCh(bp0) OF
        'A': IF Equal('ANY') THEN BEGIN sym := 26; 
             END;
        'C': IF Equal('CASE') THEN BEGIN sym := 22; 
             END ELSE IF Equal('CHARACTERS') THEN BEGIN sym := 13; 
             END ELSE IF Equal('CHR') THEN BEGIN sym := 27; 
             END ELSE IF Equal('COMMENTS') THEN BEGIN sym := 17; 
             END ELSE IF Equal('COMPILER') THEN BEGIN sym := 5; 
             END ELSE IF Equal('CONTEXT') THEN BEGIN sym := 37; 
             END;
        'E': IF Equal('END') THEN BEGIN sym := 12; 
             END;
        'F': IF Equal('FROM') THEN BEGIN sym := 18; 
             END;
        'I': IF Equal('IGNORE') THEN BEGIN sym := 21; 
             END;
        'N': IF Equal('NAMES') THEN BEGIN sym := 15; 
             END ELSE IF Equal('NESTED') THEN BEGIN sym := 20; 
             END;
        'P': IF Equal('PRAGMAS') THEN BEGIN sym := 16; 
             END ELSE IF Equal('PRODUCTIONS') THEN BEGIN sym := 9; 
             END;
        'S': IF Equal('SYNC') THEN BEGIN sym := 36; 
             END;
        'T': IF Equal('TO') THEN BEGIN sym := 19; 
             END ELSE IF Equal('TOKENS') THEN BEGIN sym := 14; 
             END;
        'U': IF Equal('USES') THEN BEGIN sym := 6; 
             END;
        'W': IF Equal('WEAK') THEN BEGIN sym := 31; 
             END;
      ELSE BEGIN END
      END
    END;

  BEGIN (*Get*)
    WHILE (ch = ' ') OR
          (ch >= CHR(9)) AND (ch <= CHR(10)) OR
          (ch = CHR(13)) DO NextCh;
    IF ((ch = '/') OR (ch = '(')) AND Comment THEN BEGIN Get(sym); EXIT; END;
    pos := nextPos;   nextPos := bp;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩av在线免费观看不卡| 国产精品女同互慰在线看 | 欧美高清视频在线高清观看mv色露露十八| 国产精品中文字幕一区二区三区| 奇米888四色在线精品| 日韩激情一区二区| 久久99精品国产91久久来源| 美国毛片一区二区| 国精产品一区一区三区mba桃花| 麻豆国产精品视频| 久久se这里有精品| 国产精品一区二区在线观看不卡| 国产风韵犹存在线视精品| 国产+成+人+亚洲欧洲自线| 不卡av电影在线播放| 91在线免费看| 555www色欧美视频| 久久一日本道色综合| 亚洲欧美一区二区不卡| 亚洲男人天堂av| 秋霞电影一区二区| 豆国产96在线|亚洲| 欧洲激情一区二区| 2017欧美狠狠色| 亚洲欧美一区二区三区国产精品| 日韩精品一二三四| 成人国产精品免费| 91精品国产福利在线观看| 国产午夜精品一区二区三区视频| 一区二区三区在线免费视频| 蜜桃视频一区二区三区在线观看| 国产福利一区在线| 欧美日韩在线免费视频| 久久综合久色欧美综合狠狠| 亚洲综合色视频| 激情综合一区二区三区| 欧美午夜电影在线播放| 久久久影视传媒| 亚洲丰满少妇videoshd| 成人午夜在线播放| 日韩欧美中文字幕公布| 亚洲精品成人精品456| 国内久久婷婷综合| 欧美日韩精品一区视频| 中文字幕一区二区三区四区| 蜜臀av性久久久久蜜臀aⅴ| 91论坛在线播放| 欧美经典三级视频一区二区三区| 手机精品视频在线观看| 一本色道a无线码一区v| 久久久精品免费网站| 日韩av电影免费观看高清完整版在线观看| 成人性生交大片| 久久婷婷色综合| 蜜桃av一区二区三区电影| 91福利社在线观看| 亚洲日本免费电影| 成人av在线资源网站| 久久久久久久久久久久久夜| 蜜芽一区二区三区| 欧美日韩在线亚洲一区蜜芽| 亚洲激情图片小说视频| 91女人视频在线观看| 中文字幕不卡一区| 国产成人av一区二区三区在线| 日韩欧美一区二区三区在线| 日韩精彩视频在线观看| 91麻豆精品国产综合久久久久久| 亚洲午夜在线电影| 欧美亚男人的天堂| 亚洲乱码国产乱码精品精的特点| 99视频有精品| 中文字幕一区在线观看视频| 成人黄色综合网站| 中文字幕亚洲电影| 色八戒一区二区三区| 亚洲激情图片一区| 欧美性欧美巨大黑白大战| 香蕉久久夜色精品国产使用方法| 欧美日韩综合在线| 日韩电影网1区2区| 久久综合999| 99视频一区二区| 亚洲毛片av在线| 欧美日韩卡一卡二| 看电视剧不卡顿的网站| 久久女同精品一区二区| 成人在线一区二区三区| 亚洲综合色在线| 日韩一区二区三区三四区视频在线观看 | 欧美丰满少妇xxxxx高潮对白| 视频一区视频二区在线观看| 日韩亚洲欧美一区二区三区| 国内成人精品2018免费看| 国产精品久久久久久一区二区三区| 色综合天天狠狠| 奇米亚洲午夜久久精品| 国产日韩欧美电影| 欧美中文字幕一区二区三区亚洲| 日韩精品乱码免费| 国产欧美一区二区在线| 在线观看视频91| 激情文学综合网| 亚洲另类春色国产| 精品福利二区三区| 91农村精品一区二区在线| 男人的j进女人的j一区| 成人免费在线观看入口| 91精品国产日韩91久久久久久| 国产成人av影院| 首页国产欧美久久| 国产精品成人免费在线| 日韩欧美亚洲国产精品字幕久久久| 国产成人在线观看免费网站| 香蕉成人伊视频在线观看| 日本一区二区综合亚洲| 欧美一区二区久久久| av在线播放成人| 久久国产福利国产秒拍| 亚洲综合激情另类小说区| 久久久国际精品| 欧美人与性动xxxx| 99国内精品久久| 国产成人午夜99999| 亚洲国产成人porn| 亚洲人成影院在线观看| 国产亚洲视频系列| 日韩免费观看2025年上映的电影 | 亚洲丶国产丶欧美一区二区三区| 欧美国产日韩一二三区| 欧美成人精品3d动漫h| 欧美日韩一区国产| 色综合天天在线| 99re6这里只有精品视频在线观看| 国产伦精品一区二区三区免费迷| 日韩中文字幕不卡| 亚洲va欧美va天堂v国产综合| 亚洲卡通动漫在线| 中文字幕一区二区在线观看| 国产日韩精品一区二区浪潮av| 欧美精品一区二区三区在线| 欧美一区二区视频在线观看| 欧美精品 国产精品| 欧美精品久久天天躁| 777亚洲妇女| 3d动漫精品啪啪一区二区竹菊| 欧美性大战久久久| 欧美日韩国产高清一区| 欧美日韩中文一区| 欧美欧美欧美欧美| 日韩亚洲电影在线| 精品久久人人做人人爰| 久久午夜电影网| 日本一区二区在线不卡| 国产精品久久久久三级| 亚洲精选免费视频| 亚洲国产精品嫩草影院| 日韩国产欧美一区二区三区| 美女视频一区在线观看| 国产在线观看免费一区| 国产jizzjizz一区二区| 91麻豆精品在线观看| 精品婷婷伊人一区三区三| 欧美一卡2卡三卡4卡5免费| 日韩精品一区二区三区中文不卡 | 欧美一级xxx| 亚洲精品一区二区在线观看| 久久久久久久久伊人| 国产精品乱码人人做人人爱 | 日本成人在线不卡视频| 激情亚洲综合在线| av中文字幕亚洲| 欧美日韩亚洲国产综合| 亚洲精品一区二区精华| 国产精品乱码一区二三区小蝌蚪| 亚洲一区二区三区不卡国产欧美 | 不卡一区在线观看| 欧美午夜不卡在线观看免费| 欧美v日韩v国产v| 国产精品电影院| 日韩精品91亚洲二区在线观看| 激情图区综合网| 欧美影院午夜播放| 日韩欧美三级在线| 亚洲天堂成人网| 久久精品国产色蜜蜜麻豆| 91美女在线看| 亚洲精品在线电影| 亚洲一级二级在线| 丰满亚洲少妇av| 欧美一区二区三区免费视频 | 国产成人免费在线观看不卡| 欧洲另类一二三四区| 久久久激情视频| 日本成人在线看| 欧洲精品中文字幕| 国产精品乱人伦中文| 狠狠色丁香久久婷婷综| 欧美久久久久久蜜桃| 亚洲免费观看高清完整版在线观看熊|