⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 isverb.dpr

📁 语法分析 语法分析
💻 DPR
📖 第 1 页 / 共 2 页
字号:

(* lexical analyzer template (TP Lex V3.0), V1.0 3-2-91 AG *)

(* global definitions: *)
 {*
    下面的例子改变自lex和yacc第二版
    简单的识别什么是动词

 *}
program IsVerb;

{$APPTYPE CONSOLE}

uses
  SysUtils, LexLib;

function yylex: Integer;

  procedure yyaction(yyruleno: Integer);
    (* local definitions: *)

  begin
    (* actions: *)
    case yyruleno of
      1:
        {* ignore white space *};

      2,
        3,
        4,
        5,
        6,
        7,
        8,
        9,
        10,
        11,
        12,
        13,
        14,
        15,
        16,
        17,
        18,
        19,
        20,
        21:
        writeln(format('%s是动词', [yytext]));

      22:
        writeln(format('%s不是动词', [yytext]));

      23:
        ECHO;
    end;
  end (*yyaction*);

  (* DFA table: *)

type
  YYTRec = record
    cc: set of Char;
    s: Integer;
  end;

const

  yynmarks = 89;
  yynmatches = 89;
  yyntrans = 125;
  yynstates = 60;

  yyk: array[1..yynmarks] of Integer = (
    { 0: }
    { 1: }
    { 2: }
    1,
    23,
    { 3: }
    22,
    23,
    { 4: }
    22,
    23,
    { 5: }
    22,
    23,
    { 6: }
    22,
    23,
    { 7: }
    22,
    23,
    { 8: }
    22,
    23,
    { 9: }
    22,
    23,
    { 10: }
    22,
    23,
    { 11: }
    22,
    23,
    { 12: }
    22,
    23,
    { 13: }
    23,
    { 14: }
    1,
    { 15: }
    2,
    22,
    { 16: }
    22,
    { 17: }
    3,
    22,
    { 18: }
    22,
    { 19: }
    22,
    { 20: }
    22,
    { 21: }
    22,
    { 22: }
    22,
    { 23: }
    7,
    22,
    { 24: }
    10,
    22,
    { 25: }
    22,
    { 26: }
    22,
    { 27: }
    22,
    { 28: }
    22,
    { 29: }
    22,
    { 30: }
    21,
    22,
    { 31: }
    4,
    22,
    { 32: }
    22,
    { 33: }
    6,
    22,
    { 34: }
    22,
    { 35: }
    22,
    { 36: }
    22,
    { 37: }
    22,
    { 38: }
    22,
    { 39: }
    12,
    22,
    { 40: }
    22,
    { 41: }
    16,
    22,
    { 42: }
    22,
    { 43: }
    18,
    22,
    { 44: }
    22,
    { 45: }
    20,
    22,
    { 46: }
    5,
    22,
    { 47: }
    13,
    22,
    { 48: }
    22,
    { 49: }
    22,
    { 50: }
    9,
    22,
    { 51: }
    11,
    22,
    { 52: }
    22,
    { 53: }
    22,
    { 54: }
    19,
    22,
    { 55: }
    14,
    22,
    { 56: }
    8,
    22,
    { 57: }
    22,
    { 58: }
    17,
    22,
    { 59: }
    15,
    22
    );

  yym: array[1..yynmatches] of Integer = (
    { 0: }
    { 1: }
    { 2: }
    1,
    23,
    { 3: }
    22,
    23,
    { 4: }
    22,
    23,
    { 5: }
    22,
    23,
    { 6: }
    22,
    23,
    { 7: }
    22,
    23,
    { 8: }
    22,
    23,
    { 9: }
    22,
    23,
    { 10: }
    22,
    23,
    { 11: }
    22,
    23,
    { 12: }
    22,
    23,
    { 13: }
    23,
    { 14: }
    1,
    { 15: }
    2,
    22,
    { 16: }
    22,
    { 17: }
    3,
    22,
    { 18: }
    22,
    { 19: }
    22,
    { 20: }
    22,
    { 21: }
    22,
    { 22: }
    22,
    { 23: }
    7,
    22,
    { 24: }
    10,
    22,
    { 25: }
    22,
    { 26: }
    22,
    { 27: }
    22,
    { 28: }
    22,
    { 29: }
    22,
    { 30: }
    21,
    22,
    { 31: }
    4,
    22,
    { 32: }
    22,
    { 33: }
    6,
    22,
    { 34: }
    22,
    { 35: }
    22,
    { 36: }
    22,
    { 37: }
    22,
    { 38: }
    22,
    { 39: }
    12,
    22,
    { 40: }
    22,
    { 41: }
    16,
    22,
    { 42: }
    22,
    { 43: }
    18,
    22,
    { 44: }
    22,
    { 45: }
    20,
    22,
    { 46: }
    5,
    22,
    { 47: }
    13,
    22,
    { 48: }
    22,
    { 49: }
    22,
    { 50: }
    9,
    22,
    { 51: }
    11,
    22,
    { 52: }
    22,
    { 53: }
    22,
    { 54: }
    19,
    22,
    { 55: }
    14,
    22,
    { 56: }
    8,
    22,
    { 57: }
    22,
    { 58: }
    17,
    22,
    { 59: }
    15,
    22
    );

  yyt: array[1..yyntrans] of YYTrec = (
    { 0: }
    (cc: [#1..#8, #10..#31, '!'..'@', '['..'`', '{'..#255]; s: 13),
    (cc: [#9, ' ']; s: 2),
    (cc: ['A'..'Z', 'e', 'f', 'j'..'r', 't'..'v', 'x'..'z']; s: 12),
    (cc: ['a']; s: 4),
    (cc: ['b']; s: 6),
    (cc: ['c']; s: 9),
    (cc: ['d']; s: 7),
    (cc: ['g']; s: 11),
    (cc: ['h']; s: 10),
    (cc: ['i']; s: 3),
    (cc: ['s']; s: 8),
    (cc: ['w']; s: 5),
    { 1: }
    (cc: [#1..#8, #10..#31, '!'..'@', '['..'`', '{'..#255]; s: 13),
    (cc: [#9, ' ']; s: 2),
    (cc: ['A'..'Z', 'e', 'f', 'j'..'r', 't'..'v', 'x'..'z']; s: 12),
    (cc: ['a']; s: 4),
    (cc: ['b']; s: 6),
    (cc: ['c']; s: 9),
    (cc: ['d']; s: 7),
    (cc: ['g']; s: 11),
    (cc: ['h']; s: 10),
    (cc: ['i']; s: 3),
    (cc: ['s']; s: 8),
    (cc: ['w']; s: 5),
    { 2: }
    (cc: [#9, ' ']; s: 14),
    { 3: }
    (cc: ['A'..'Z', 'a'..'r', 't'..'z']; s: 16),
    (cc: ['s']; s: 15),
    { 4: }
    (cc: ['A'..'Z', 'a'..'l', 'n'..'q', 's'..'z']; s: 16),
    (cc: ['m']; s: 17),
    (cc: ['r']; s: 18),
    { 5: }
    (cc: ['A'..'Z', 'b'..'d', 'f'..'h', 'j'..'n', 'p'..'z']; s: 16),
    (cc: ['a']; s: 20),
    (cc: ['e']; s: 19),
    (cc: ['i']; s: 21),
    (cc: ['o']; s: 22),
    { 6: }
    (cc: ['A'..'Z', 'a'..'d', 'f'..'z']; s: 16),
    (cc: ['e']; s: 23),
    { 7: }
    (cc: ['A'..'Z', 'a'..'h', 'j'..'n', 'p'..'z']; s: 16),
    (cc: ['i']; s: 25),
    (cc: ['o']; s: 24),
    { 8: }
    (cc: ['A'..'Z', 'a'..'g', 'i'..'z']; s: 16),
    (cc: ['h']; s: 26),
    { 9: }
    (cc: ['A'..'Z', 'b'..'n', 'p'..'z']; s: 16),
    (cc: ['a']; s: 27),
    (cc: ['o']; s: 28),
    { 10: }
    (cc: ['A'..'Z', 'b'..'z']; s: 16),
    (cc: ['a']; s: 29),
    { 11: }
    (cc: ['A'..'Z', 'a'..'n', 'p'..'z']; s: 16),
    (cc: ['o']; s: 30),
    { 12: }
    (cc: ['A'..'Z', 'a'..'z']; s: 16),
    { 13: }
    { 14: }
    (cc: [#9, ' ']; s: 14),
    { 15: }
    (cc: ['A'..'Z', 'a'..'z']; s: 16),
    { 16: }
    (cc: ['A'..'Z', 'a'..'z']; s: 16),
    { 17: }
    (cc: ['A'..'Z', 'a'..'z']; s: 16),
    { 18: }
    (cc: ['A'..'Z', 'a'..'d', 'f'..'z']; s: 16),
    (cc: ['e']; s: 31),
    { 19: }
    (cc: ['A'..'Z', 'a'..'q', 's'..'z']; s: 16),
    (cc: ['r']; s: 32),
    { 20: }
    (cc: ['A'..'Z', 'a'..'r', 't'..'z']; s: 16),
    (cc: ['s']; s: 33),
    { 21: }
    (cc: ['A'..'Z', 'a'..'k', 'm'..'z']; s: 16),
    (cc: ['l']; s: 34),
    { 22: }
    (cc: ['A'..'Z', 'a'..'t', 'v'..'z']; s: 16),
    (cc: ['u']; s: 35),
    { 23: }
    (cc: ['A'..'Z', 'a'..'d', 'f'..'h', 'j'..'z']; s: 16),
    (cc: ['e']; s: 37),
    (cc: ['i']; s: 36),
    { 24: }
    (cc: ['A'..'Z', 'a'..'d', 'f'..'z']; s: 16),
    (cc: ['e']; s: 38),
    { 25: }
    (cc: ['A'..'Z', 'a'..'c', 'e'..'z']; s: 16),
    (cc: ['d']; s: 39),
    { 26: }
    (cc: ['A'..'Z', 'a'..'n', 'p'..'z']; s: 16),
    (cc: ['o']; s: 40),
    { 27: }
    (cc: ['A'..'Z', 'a'..'m', 'o'..'z']; s: 16),
    (cc: ['n']; s: 41),
    { 28: }
    (cc: ['A'..'Z', 'a'..'t', 'v'..'z']; s: 16),
    (cc: ['u']; s: 42),
    { 29: }
    (cc: ['A'..'Z', 'a'..'c', 'e'..'r', 't', 'u', 'w'..'z']; s: 16),
    (cc: ['d']; s: 45),
    (cc: ['s']; s: 43),
    (cc: ['v']; s: 44),
    { 30: }
    (cc: ['A'..'Z', 'a'..'z']; s: 16),
    { 31: }
    (cc: ['A'..'Z', 'a'..'z']; s: 16),
    { 32: }
    (cc: ['A'..'Z', 'a'..'d', 'f'..'z']; s: 16),
    (cc: ['e']; s: 46),
    { 33: }
    (cc: ['A'..'Z', 'a'..'z']; s: 16),
    { 34: }
    (cc: ['A'..'Z', 'a'..'k', 'm'..'z']; s: 16),
    (cc: ['l']; s: 47),
    { 35: }
    (cc: ['A'..'Z', 'a'..'k', 'm'..'z']; s: 16),
    (cc: ['l']; s: 48),
    { 36: }
    (cc: ['A'..'Z', 'a'..'m', 'o'..'z']; s: 16),
    (cc: ['n']; s: 49),
    { 37: }
    (cc: ['A'..'Z', 'a'..'m', 'o'..'z']; s: 16),

⌨️ 快捷键说明

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