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

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

?? crp.pas

?? 一個Pascal語言分析器
?? PAS
?? 第 1 頁 / 共 2 頁
字號:
    c:         INTEGER;
    name:      CRTable.Name;
    s:         STRING;
  BEGIN
    IF (sym = 1) THEN BEGIN
      _Ident(name);
      c := CRTable.ClassWithName(name);
      IF c < 0
        THEN BEGIN SemError(115); Sets.Clear(oneSet) END
        ELSE CRTable.GetClass(c, oneSet);
    END ELSE IF (sym = 2) THEN BEGIN
      Get;
      CRS.GetName(CRS.pos, CRS.len, s);
      Sets.Clear(oneSet); i := 2;
      WHILE s[i] <> s[1] DO BEGIN
        IF CRTable.ignoreCase THEN s[i] := UpCase(s[i]);
        Sets.Incl(oneSet, ORD(s[i])); INC(i)
      END;
    END ELSE IF (sym = 27) THEN BEGIN
      _SingleChar(n1);
      Sets.Clear(oneSet); Sets.Incl(oneSet, n1);
      IF (sym = 25) THEN BEGIN
        Get;
        _SingleChar(n2);
        FOR i := n1 TO n2 DO Sets.Incl(oneSet, i);
      END;
    END ELSE IF (sym = 26) THEN BEGIN
      Get;
      Sets.Fill(oneSet);
    END ELSE BEGIN SynError(50);
    END;
  END;

PROCEDURE _Set (VAR oneSet: CRTable.CRTSet);
  VAR
    set2: CRTable.CRTSet;
  BEGIN
    _SimSet(oneSet);
    WHILE (sym = 23) OR (sym = 24) DO BEGIN
      IF (sym = 23) THEN BEGIN
        Get;
        _SimSet(set2);
        Sets.Unite(oneSet, set2);
      END ELSE BEGIN
        Get;
        _SimSet(set2);
        Sets.Differ(oneSet, set2);
      END;
    END;
  END;

PROCEDURE _TokenExpr (VAR gL, gR: INTEGER);
  VAR
    gL2, gR2: INTEGER;
    first:    BOOLEAN;
  BEGIN
    _TokenTerm(gL, gR);
    first := TRUE;
    WHILE WeakSeparator(30, 3, 4) DO BEGIN
      _TokenTerm(gL2, gR2);
      IF first THEN BEGIN
        CRTable.MakeFirstAlt(gL, gR); first := FALSE
      END;
      CRTable.ConcatAlt(gL, gR, gL2, gR2);
    END;
  END;

PROCEDURE _NameDecl;
  VAR
    name: CRTable.Name;
    str: STRING;
  BEGIN
    _Ident(name);
    Expect(10);
    IF (sym = 1) THEN BEGIN
      Get;
      CRS.GetName(CRS.pos, CRS.len, str);
    END ELSE IF (sym = 2) THEN BEGIN
      Get;
      CRS.GetName(CRS.pos, CRS.len, str);
      FixString(str, CRS.len);
    END ELSE BEGIN SynError(51);
    END;
    CRTable.NewName(name, str);
    Expect(11);
  END;

PROCEDURE _TokenDecl (typ: INTEGER);
  VAR
    kind:       INTEGER;
    name:       CRTable.Name;
    pos:        CRTable.Position;
    sp, gL, gR: INTEGER;
    sn:         CRTable.SymbolNode;
  BEGIN
    _Symbol(name, kind);
    IF CRTable.FindSym(name) <> CRTable.noSym
      THEN SemError(107)
      ELSE BEGIN
        sp := CRTable.NewSym(typ, name, CRS.line);
        CRTable.GetSym(sp, sn); sn.struct := CRTable.classToken;
        CRTable.PutSym(sp, sn)
      END;
    WHILE NOT ( _In(symSet[5], sym)) DO BEGIN SynError(52); Get END;
    IF (sym = 10) THEN BEGIN
      Get;
      _TokenExpr(gL, gR);
      IF kind <> ident THEN SemError(113);
      CRTable.CompleteGraph(gR);
      CRA.ConvertToStates(gL, sp);
      Expect(11);
    END ELSE IF _In(symSet[6], sym) THEN BEGIN
      IF kind = ident
        THEN CRTable.genScanner := FALSE
        ELSE MatchLiteral(sp);
    END ELSE BEGIN SynError(53);
    END;
    IF (sym = 42) THEN BEGIN
      _SemText(pos);
      IF typ = CRTable.t THEN SemError(114);
      CRTable.GetSym(sp, sn); sn.semPos := pos;
      CRTable.PutSym(sp, sn);
    END;
  END;

PROCEDURE _SetDecl;
  VAR
    c:    INTEGER;
    oneSet:  CRTable.CRTSet;
    name: CRTable.Name;
  BEGIN
    _Ident(name);
    c := CRTable.ClassWithName(name);
    IF c >= 0 THEN SemError(107);
    Expect(10);
    _Set(oneSet);
    c := CRTable.NewClass(name, oneSet);
    Expect(11);
  END;

PROCEDURE _Expression (VAR gL, gR: INTEGER);
  VAR
    gL2, gR2: INTEGER;
    first:    BOOLEAN;
  BEGIN
    _Term(gL, gR);
    first := TRUE;
    WHILE WeakSeparator(30, 1, 7) DO BEGIN
      _Term(gL2, gR2);
      IF first THEN BEGIN
        CRTable.MakeFirstAlt(gL, gR); first := FALSE
      END;
      CRTable.ConcatAlt(gL, gR, gL2, gR2);
    END;
  END;

PROCEDURE _SemText (VAR semPos: CRTable.Position);
  BEGIN
    Expect(42);
    semPos.beg := CRS.pos + 2; semPos.col := CRS.col + 2;
    WHILE _In(symSet[8], sym) DO BEGIN
      IF _In(symSet[9], sym) THEN BEGIN
        Get;
      END ELSE IF (sym = 3) THEN BEGIN
        Get;
        SemError(102);
      END ELSE BEGIN
        Get;
        SemError(109);
      END;
    END;
    Expect(43);
    semPos.len := (CRS.pos - semPos.beg);
  END;

PROCEDURE _Attribs (VAR attrPos: CRTable.Position);
  BEGIN
    IF (sym = 38) THEN BEGIN
      Get;
      attrPos.beg := CRS.pos + 1; attrPos.col := CRS.col + 1;
      WHILE _In(symSet[10], sym) DO BEGIN
        IF _In(symSet[11], sym) THEN BEGIN
          Get;
        END ELSE BEGIN
          Get;
          SemError(102);
        END;
      END;
      Expect(39);
      attrPos.len := (CRS.pos - attrPos.beg);
    END ELSE IF (sym = 40) THEN BEGIN
      Get;
      attrPos.beg := CRS.pos + 2; attrPos.col := CRS.col + 2;
      WHILE _In(symSet[12], sym) DO BEGIN
        IF _In(symSet[13], sym) THEN BEGIN
          Get;
        END ELSE BEGIN
          Get;
          SemError(102);
        END;
      END;
      Expect(41);
      attrPos.len := (CRS.pos - attrPos.beg);
    END ELSE BEGIN SynError(54);
    END;
  END;

PROCEDURE _Declaration;
  VAR
    gL1, gR1, gL2, gR2: INTEGER;
    nested:             BOOLEAN;
  BEGIN
    CASE sym OF
      13 : BEGIN
        Get;
        WHILE (sym = 1) DO BEGIN
          _SetDecl;
        END;
        END;
      14 : BEGIN
        Get;
        WHILE (sym = 1) OR (sym = 2) DO BEGIN
          _TokenDecl(CRTable.t);
        END;
        END;
      15 : BEGIN
        Get;
        WHILE (sym = 1) DO BEGIN
          _NameDecl;
        END;
        END;
      16 : BEGIN
        Get;
        WHILE (sym = 1) OR (sym = 2) DO BEGIN
          _TokenDecl(CRTable.pr);
        END;
        END;
      17 : BEGIN
        Get;
        Expect(18);
        _TokenExpr(gL1, gR1);
        Expect(19);
        _TokenExpr(gL2, gR2);
        IF (sym = 20) THEN BEGIN
          Get;
          nested := TRUE;
        END ELSE IF _In(symSet[14], sym) THEN BEGIN
          nested := FALSE;
        END ELSE BEGIN SynError(55);
        END;
        CRA.NewComment(gL1, gL2, nested);
        END;
      21 : BEGIN
        Get;
        IF (sym = 22) THEN BEGIN
          Get;
          CRTable.ignoreCase := TRUE;
        END ELSE IF (sym = 1) OR (sym = 2) OR (sym = 26) OR (sym = 27) THEN BEGIN
          _Set(CRTable.ignored);
          IF Sets.IsIn(CRTable.ignored, 0) THEN SemError(119);
        END ELSE BEGIN SynError(56);
        END;
        END;
    ELSE BEGIN SynError(57);
        END;
    END;
  END;

PROCEDURE _Ident (VAR name: CRTable.Name);
  VAR
    str: STRING;
  BEGIN
    Expect(1);
    CRS.GetName(CRS.pos, CRS.len, str);
    name := str;
  END;

PROCEDURE _CR;
  VAR
    ok, undef, hasAttrs: BOOLEAN;
    unknownSy,
    eofSy, gR:       INTEGER;
    gramLine, sp:    INTEGER;
    name, gramName:  CRTable.Name;
    sn:              CRTable.SymbolNode;
  BEGIN
    Expect(5);
    gramLine := CRS.line;
    eofSy := CRTable.NewSym(CRTable.t, 'EOF', 0);
    CRTable.genScanner := TRUE; CRTable.ignoreCase := FALSE;
    Sets.Clear(CRTable.ignored);
    _Ident(gramName);
    IF (sym = 6) THEN BEGIN
      Get;
      CRTable.useDeclPos.beg := CRS.nextPos;
      CRTable.hasUses := TRUE;
      Expect(1);
      WHILE (sym = 7) DO BEGIN
        Get;
        Expect(1);
      END;
      CRTable.useDeclPos.len := CRS.nextPos - CRTable.useDeclPos.beg;
      CRTable.useDeclPos.col := 0;
      Expect(8);
    END;
    CRTable.semDeclPos.beg := CRS.nextPos;
    WHILE _In(symSet[15], sym) DO BEGIN
      Get;
    END;
    CRTable.semDeclPos.len := CRS.nextPos - CRTable.semDeclPos.beg;
    CRTable.semDeclPos.col := 0;
    WHILE _In(symSet[16], sym) DO BEGIN
      _Declaration;
    END;
    WHILE NOT ( (sym = 0) OR (sym = 9)) DO BEGIN SynError(58); Get END;
    Expect(9);
    ok := Successful;
    IF ok AND CRTable.genScanner THEN CRA.MakeDeterministic(ok);
    IF NOT ok THEN SemError(127);
    CRTable.nNodes := 0;
    WHILE (sym = 1) DO BEGIN
      _Ident(name);
      sp := CRTable.FindSym(name); undef := sp = CRTable.noSym;
      IF undef
        THEN BEGIN
            sp := CRTable.NewSym(CRTable.nt, name, CRS.line);
            CRTable.GetSym(sp, sn)
          END
        ELSE BEGIN
          CRTable.GetSym(sp, sn);
          IF sn.typ = CRTable.nt
            THEN
              BEGIN IF sn.struct > 0 THEN SemError(107) END
            ELSE SemError(108);
          sn.line := CRS.line
        END;
      hasAttrs := sn.attrPos.beg >= 0;
      IF (sym = 38) OR (sym = 40) THEN BEGIN
        _Attribs(sn.attrPos);
        IF NOT undef AND NOT hasAttrs THEN SemError(105);
        CRTable.PutSym(sp, sn);
      END ELSE IF (sym = 10) OR (sym = 42) THEN BEGIN
        IF NOT undef AND hasAttrs THEN SemError(105);
      END ELSE BEGIN SynError(59);
      END;
      IF (sym = 42) THEN BEGIN
        _SemText(sn.semPos);
      END;
      ExpectWeak(10, 17);
      _Expression(sn.struct, gR);
      CRTable.CompleteGraph(gR); CRTable.PutSym(sp, sn);
      ExpectWeak(11, 18);
    END;
    Expect(12);
    _Ident(name);
    sp := CRTable.FindSym(gramName);
    IF sp = CRTable.noSym THEN SemError(111)
    ELSE BEGIN
      CRTable.GetSym(sp, sn);
      IF sn.attrPos.beg >= 0 THEN SemError(112);
      CRTable.root := CRTable.NewNode(CRTable.nt, sp, gramLine);
    END;
    IF name <> gramName THEN SemError(117);
    Expect(11);
    unknownSy := CRTable.NewSym(CRTable.t, 'not', 0);
  END;



PROCEDURE  Parse;
  BEGIN
    _Reset; Get;
    _CR;

  END;

BEGIN
  errDist := minErrDist;
  symSet[ 0, 0] := [0, 1, 2, 9, 10, 13, 14, 15];
  symSet[ 0, 1] := [0, 1, 5];
  symSet[ 0, 2] := [10];
  symSet[ 1, 0] := [1, 2, 11];
  symSet[ 1, 1] := [10, 12, 13, 14, 15];
  symSet[ 1, 2] := [0, 1, 2, 3, 4, 10];
  symSet[ 2, 0] := [1, 2];
  symSet[ 2, 1] := [10, 12, 15];
  symSet[ 2, 2] := [0, 2, 4, 10];
  symSet[ 3, 0] := [1, 2];
  symSet[ 3, 1] := [12];
  symSet[ 3, 2] := [0, 2];
  symSet[ 4, 0] := [9, 11, 13, 14, 15];
  symSet[ 4, 1] := [0, 1, 3, 4, 5, 13];
  symSet[ 4, 2] := [1, 3];
  symSet[ 5, 0] := [0, 1, 2, 9, 10, 13, 14, 15];
  symSet[ 5, 1] := [0, 1, 5];
  symSet[ 5, 2] := [10];
  symSet[ 6, 0] := [1, 2, 9, 13, 14, 15];
  symSet[ 6, 1] := [0, 1, 5];
  symSet[ 6, 2] := [10];
  symSet[ 7, 0] := [11];
  symSet[ 7, 1] := [13];
  symSet[ 7, 2] := [1, 3];
  symSet[ 8, 0] := [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15];
  symSet[ 8, 1] := [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15];
  symSet[ 8, 2] := [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12];
  symSet[ 9, 0] := [1, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15];
  symSet[ 9, 1] := [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15];
  symSet[ 9, 2] := [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 12];
  symSet[10, 0] := [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15];
  symSet[10, 1] := [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15];
  symSet[10, 2] := [0, 1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12];
  symSet[11, 0] := [1, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15];
  symSet[11, 1] := [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15];
  symSet[11, 2] := [0, 1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12];
  symSet[12, 0] := [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15];
  symSet[12, 1] := [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15];
  symSet[12, 2] := [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12];
  symSet[13, 0] := [1, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15];
  symSet[13, 1] := [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15];
  symSet[13, 2] := [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12];
  symSet[14, 0] := [9, 13, 14, 15];
  symSet[14, 1] := [0, 1, 5];
  symSet[14, 2] := [];
  symSet[15, 0] := [1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12];
  symSet[15, 1] := [2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15];
  symSet[15, 2] := [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];
  symSet[16, 0] := [13, 14, 15];
  symSet[16, 1] := [0, 1, 5];
  symSet[16, 2] := [];
  symSet[17, 0] := [0, 1, 2, 9, 10, 11, 13, 14, 15];
  symSet[17, 1] := [0, 1, 5, 10, 12, 14, 15];
  symSet[17, 2] := [0, 2, 4, 10];
  symSet[18, 0] := [0, 1, 2, 9, 10, 12, 13, 14, 15];
  symSet[18, 1] := [0, 1, 5];
  symSet[18, 2] := [10];
END. (* CRP *)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国内成人精品2018免费看| 在线电影院国产精品| 在线观看日韩一区| 26uuu成人网一区二区三区| 亚洲免费观看高清完整版在线观看熊 | 亚洲三级久久久| 久久成人综合网| 欧美视频完全免费看| 国产精品女上位| 久久电影国产免费久久电影| 欧美日本一区二区三区| 亚洲四区在线观看| 成人精品视频一区二区三区| 日韩一区二区精品在线观看| 午夜精品久久久久久久蜜桃app| 成人美女视频在线看| 久久久综合视频| 日本电影亚洲天堂一区| 中文字幕免费一区| 国产传媒一区在线| 精品国产成人在线影院| 日韩高清不卡一区| 欧美一区二区三区不卡| 日本女优在线视频一区二区| 欧美色国产精品| 亚洲欧美一区二区在线观看| 国产aⅴ综合色| 日日夜夜免费精品| 99re这里都是精品| 色哟哟日韩精品| 亚洲色欲色欲www| 91视频观看免费| 中文字幕免费不卡| 99久久婷婷国产综合精品电影| 亚洲国产精品成人久久综合一区 | 欧美私模裸体表演在线观看| 一区二区三区中文字幕| 日本福利一区二区| 日韩黄色在线观看| 日韩一二三区不卡| 国产精品综合在线视频| 中文字幕国产一区二区| 99久久精品免费看| 亚洲激情成人在线| 欧美一区午夜视频在线观看 | 日韩精品资源二区在线| 精品中文av资源站在线观看| 精品国产乱码久久久久久牛牛| 国产综合色在线| 国产精品免费丝袜| 国产三级三级三级精品8ⅰ区| 国产一区欧美日韩| 亚洲人吸女人奶水| 欧美精品一卡二卡| 国产成人一级电影| 亚洲视频在线一区观看| 欧美巨大另类极品videosbest | 色综合一个色综合亚洲| 亚洲一二三四区不卡| 欧美一二三区在线观看| 国产乱色国产精品免费视频| 亚洲欧洲成人自拍| 欧美夫妻性生活| 粉嫩一区二区三区在线看| 亚洲午夜精品一区二区三区他趣| 91麻豆精品国产91久久久使用方法| 激情文学综合插| 亚洲欧美日韩在线播放| 日韩欧美卡一卡二| 一本久久精品一区二区| 奇米影视一区二区三区小说| 中文字幕中文字幕中文字幕亚洲无线| 欧美影院一区二区| 国产一区二区三区久久久 | 日本道色综合久久| 久久国产乱子精品免费女| 亚洲欧洲韩国日本视频| 精品精品国产高清a毛片牛牛| 色综合婷婷久久| 国产美女娇喘av呻吟久久| 亚洲午夜精品网| 亚洲欧洲日本在线| 久久精品亚洲精品国产欧美| 7777精品伊人久久久大香线蕉的 | 精品影视av免费| 悠悠色在线精品| 国产欧美一区二区在线| 欧美一级一区二区| 在线一区二区三区四区五区| 国产高清不卡一区二区| 蜜乳av一区二区| 亚洲大片精品永久免费| 亚洲人成电影网站色mp4| 久久精品人人爽人人爽| 欧美大片日本大片免费观看| 欧美日韩dvd在线观看| 色综合久久综合网97色综合| 国产成人av电影在线| 久久超碰97人人做人人爱| 午夜婷婷国产麻豆精品| 亚洲女人****多毛耸耸8| 欧美激情一区二区三区蜜桃视频| 日韩免费看的电影| 91精品国产综合久久精品app| 欧美自拍偷拍午夜视频| 91在线精品一区二区| 国产69精品久久久久毛片| 黄色成人免费在线| 久久99国产精品久久| 美女www一区二区| 久久精品国产亚洲一区二区三区| 日韩一区欧美二区| 免费在线看一区| 久久99精品视频| 国产精品一区二区在线观看不卡| 麻豆成人91精品二区三区| 日本成人在线一区| 91久久精品网| 欧美日本一区二区| 欧美一区日韩一区| 精品福利一区二区三区| 精品成a人在线观看| 久久久久国色av免费看影院| 国产亚洲精久久久久久| 亚洲欧洲av一区二区三区久久| 亚洲色图都市小说| 五月天精品一区二区三区| 日本强好片久久久久久aaa| 久久99久久精品欧美| 国产精品一区久久久久| 99国产欧美另类久久久精品| 色拍拍在线精品视频8848| 欧美久久久久久久久久| 精品国产乱码久久| 国产精品九色蝌蚪自拍| 亚洲一区二区欧美| 久久91精品久久久久久秒播| 国产成人欧美日韩在线电影 | 国产成人综合在线| www.在线欧美| 欧美日韩不卡视频| 久久久精品天堂| 亚洲精品久久嫩草网站秘色| 男女男精品视频| 本田岬高潮一区二区三区| 欧美色中文字幕| 精品国产凹凸成av人网站| 亚洲乱码日产精品bd| 久久精品99久久久| 色噜噜狠狠一区二区三区果冻| 日韩女优毛片在线| 亚洲视频网在线直播| 美女在线视频一区| 91一区在线观看| 精品剧情v国产在线观看在线| 亚洲欧洲99久久| 日韩av中文字幕一区二区| 成人精品小蝌蚪| 日韩精品中午字幕| 亚洲另类春色国产| 国产精品456露脸| 欧美一区二区视频在线观看2020 | 色综合中文综合网| 成人午夜电影小说| 538在线一区二区精品国产| 国产精品国产自产拍高清av | 亚洲最色的网站| 国产成人av网站| 日韩一级黄色大片| 一区二区三区色| 国产成人精品三级| 精品久久久久久久久久久久久久久久久 | 成人av午夜电影| 欧美mv和日韩mv国产网站| 亚洲成a人片在线观看中文| 不卡视频在线看| 久久只精品国产| 久久国产精品第一页| 欧美高清视频一二三区 | 国产乱码精品一品二品| 777xxx欧美| 亚洲高清一区二区三区| 色哟哟精品一区| 日韩一区日韩二区| 成人性色生活片| 国产农村妇女精品| 国产乱码精品一品二品| 久久亚洲一级片| 国内精品伊人久久久久av一坑 | 欧美顶级少妇做爰| 亚洲第一二三四区| 欧美日韩亚洲丝袜制服| 一区二区三区四区视频精品免费| 99久久精品一区| 一区二区视频免费在线观看| 色婷婷亚洲一区二区三区| 亚洲女同ⅹxx女同tv| 欧美自拍偷拍一区| 五月婷婷久久综合| 日韩视频在线你懂得|