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

📄 commentc.dpr

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

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

(* global definitions: *)

(* 计算C代码中的注释,空行和代码行*)

program CommentC;

{$APPTYPE CONSOLE}

{%ToDo 'commentc.todo'}

uses
  SysUtils,
  LexLib;

var
  comments, code, whiteSpace: integer;

const
  COMMENT = 2;

function yylex: Integer;

  procedure yyaction(yyruleno: Integer);
    (* local definitions: *)
  begin
    (* actions: *)
    case yyruleno of
      1:
        Start(COMMENT); {* 进入注释状态 *}
      2:
        inc(comments); {/* 自包含的注释 */}

      3:
        begin
          Start(0);
          inc(comments);
        end;
      4:
        Start(0);
      5:
        inc(comments);
      6:
        inc(comments);

      7:
        inc(whiteSpace);

      8:
        inc(code);
      9:
        inc(code);
      10:
        begin
          inc(code);
          Start(COMMENT);
        end;
      11:
        inc(code);

      12:
        ; {* 忽略其它 *}
    end;
  end (*yyaction*);

  (* DFA table: *)

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

const

  yynmarks = 49;
  yynmatches = 49;
  yyntrans = 262;
  yynstates = 86;

  yyk: array[1..yynmarks] of Integer = (
    { 0: }
    { 1: }
    { 2: }
    { 3: }
    { 4: }
    12,
    { 5: }
    12,
    { 6: }
    12,
    { 7: }
    12,
    { 8: }
    7,
    { 9: }
    12,
    { 10: }
    5,
    { 11: }
    12,
    { 12: }
    12,
    { 13: }
    12,
    { 14: }
    12,
    { 15: }
    5,
    7,
    { 16: }
    { 17: }
    { 18: }
    11,
    { 19: }
    { 20: }
    { 21: }
    { 22: }
    7,
    11,
    { 23: }
    1,
    { 24: }
    4,
    { 25: }
    6,
    11,
    { 26: }
    6,
    7,
    11,
    { 27: }
    { 28: }
    { 29: }
    { 30: }
    1,
    { 31: }
    { 32: }
    { 33: }
    { 34: }
    { 35: }
    3,
    { 36: }
    { 37: }
    { 38: }
    10,
    { 39: }
    { 40: }
    { 41: }
    { 42: }
    { 43: }
    { 44: }
    { 45: }
    { 46: }
    { 47: }
    { 48: }
    { 49: }
    { 50: }
    { 51: }
    { 52: }
    { 53: }
    { 54: }
    { 55: }
    2,
    { 56: }
    { 57: }
    { 58: }
    { 59: }
    { 60: }
    { 61: }
    8,
    10,
    { 62: }
    { 63: }
    { 64: }
    { 65: }
    { 66: }
    9,
    { 67: }
    9,
    10,
    { 68: }
    { 69: }
    { 70: }
    { 71: }
    2,
    8,
    10,
    { 72: }
    { 73: }
    { 74: }
    { 75: }
    { 76: }
    { 77: }
    2,
    9,
    { 78: }
    { 79: }
    2,
    10,
    { 80: }
    { 81: }
    8,
    9,
    10,
    { 82: }
    { 83: }
    2,
    8,
    9,
    10,
    { 84: }
    { 85: }
    2,
    9,
    10
    );

  yym: array[1..yynmatches] of Integer = (
    { 0: }
    { 1: }
    { 2: }
    { 3: }
    { 4: }
    12,
    { 5: }
    12,
    { 6: }
    12,
    { 7: }
    12,
    { 8: }
    7,
    { 9: }
    12,
    { 10: }
    5,
    { 11: }
    12,
    { 12: }
    12,
    { 13: }
    12,
    { 14: }
    12,
    { 15: }
    5,
    7,
    { 16: }
    { 17: }
    { 18: }
    11,
    { 19: }
    { 20: }
    { 21: }
    { 22: }
    7,
    11,
    { 23: }
    1,
    { 24: }
    4,
    { 25: }
    6,
    11,
    { 26: }
    6,
    7,
    11,
    { 27: }
    { 28: }
    { 29: }
    { 30: }
    1,
    { 31: }
    { 32: }
    { 33: }
    { 34: }
    { 35: }
    3,
    { 36: }
    { 37: }
    { 38: }
    10,
    { 39: }
    { 40: }
    { 41: }
    { 42: }
    { 43: }
    { 44: }
    { 45: }
    { 46: }
    { 47: }
    { 48: }
    { 49: }
    { 50: }
    { 51: }
    { 52: }
    { 53: }
    { 54: }
    { 55: }
    2,
    { 56: }
    { 57: }
    { 58: }
    { 59: }
    { 60: }
    { 61: }
    8,
    10,
    { 62: }
    { 63: }
    { 64: }
    { 65: }
    { 66: }
    9,
    { 67: }
    9,
    10,
    { 68: }
    { 69: }
    { 70: }
    { 71: }
    2,
    8,
    10,
    { 72: }
    { 73: }
    { 74: }
    { 75: }
    { 76: }
    { 77: }
    2,
    9,
    { 78: }
    { 79: }
    2,
    10,
    { 80: }
    { 81: }
    8,
    9,
    10,
    { 82: }
    { 83: }
    2,
    8,
    9,
    10,
    { 84: }
    { 85: }
    2,
    9,
    10
    );

  yyt: array[1..yyntrans] of YYTrec = (
    { 0: }
    (cc: [#1..#9, #11..'.', '0'..#255]; s: 4),
    (cc: ['/']; s: 5),
    { 1: }
    (cc: [#1..#8, #11..#31, '!'..'.', '0'..#255]; s: 4),
    (cc: [#9, ' ']; s: 6),
    (cc: [#10]; s: 8),
    (cc: ['/']; s: 7),
    { 2: }
    (cc: [#1..#9, #11..')', '+'..'.', '0'..#255]; s: 11),
    (cc: [#10]; s: 10),
    (cc: ['*']; s: 9),
    (cc: ['/']; s: 12),
    { 3: }
    (cc: [#1..#8, #11..#31, '!'..')', '+'..'.', '0'..#255]; s: 11),
    (cc: [#9, ' ']; s: 13),
    (cc: [#10]; s: 15),
    (cc: ['*']; s: 9),
    (cc: ['/']; s: 14),
    { 4: }
    (cc: [#1..#9, #11..'.', '0'..#255]; s: 16),
    (cc: [#10]; s: 18),
    (cc: ['/']; s: 17),
    { 5: }
    (cc: [#1..#9, #11..')', '+'..'.', '0'..#255]; s: 16),
    (cc: [#10]; s: 18),
    (cc: ['*']; s: 19),
    (cc: ['/']; s: 17),
    { 6: }
    (cc: [#1..#8, #11..#31, '!'..'.', '0'..#255]; s: 16),
    (cc: [#9, ' ']; s: 20),
    (cc: [#10]; s: 22),
    (cc: ['/']; s: 21),
    { 7: }
    (cc: [#1..#9, #11..')', '+'..'.', '0'..#255]; s: 16),
    (cc: [#10]; s: 18),
    (cc: ['*']; s: 23),
    (cc: ['/']; s: 17),
    { 8: }
    { 9: }
    (cc: [#1..#9, #11..'.', '0'..#255]; s: 16),
    (cc: [#10]; s: 25),
    (cc: ['/']; s: 24),
    { 10: }
    { 11: }
    (cc: [#1..#9, #11..'.', '0'..#255]; s: 16),
    (cc: [#10]; s: 25),
    (cc: ['/']; s: 17),
    { 12: }
    (cc: [#1..#9, #11..')', '+'..'.', '0'..#255]; s: 16),
    (cc: [#10]; s: 25),
    (cc: ['*']; s: 19),
    (cc: ['/']; s: 17),
    { 13: }
    (cc: [#1..#8, #11..#31, '!'..'.', '0'..#255]; s: 16),
    (cc: [#9, ' ']; s: 20),
    (cc: [#10]; s: 26),
    (cc: ['/']; s: 21),
    { 14: }
    (cc: [#1..#9, #11..')', '+'..'.', '0'..#255]; s: 16),
    (cc: [#10]; s: 25),
    (cc: ['*']; s: 23),
    (cc: ['/']; s: 17),
    { 15: }
    { 16: }
    (cc: [#1..#9, #11..'.', '0'..#255]; s: 16),
    (cc: ['/']; s: 17),
    { 17: }
    (cc: [#1..#9, #11..')', '+'..'.', '0'..#255]; s: 16),
    (cc: ['*']; s: 27),
    (cc: ['/']; s: 17),
    { 18: }
    { 19: }
    (cc: [#1..#9, #11..')', '+'..'.', '0'..#255]; s: 19),
    (cc: ['*']; s: 29),
    (cc: ['/']; s: 28),
    { 20: }
    (cc: [#1..#8, #11..#31, '!'..'.', '0'..#255]; s: 16),
    (cc: [#9, ' ']; s: 20),
    (cc: [#10]; s: 8),
    (cc: ['/']; s: 21),
    { 21: }
    (cc: [#1..#9, #11..')', '+'..'.', '0'..#255]; s: 16),
    (cc: ['*']; s: 30),
    (cc: ['/']; s: 17),
    { 22: }
    { 23: }
    (cc: [#1..#9, #11..')', '+'..'.', '0'..#255]; s: 31),
    (cc: ['*']; s: 32),
    (cc: ['/']; s: 33),
    { 24: }
    (cc: [#1..#8, #11..#31, '!'..')', '+'..'.', '0'..#255]; s: 16),
    (cc: [#9, ' ']; s: 34),
    (cc: [#10]; s: 35),
    (cc: ['*']; s: 27),
    (cc: ['/']; s: 17),
    { 25: }
    { 26: }
    { 27: }
    (cc: [#1..#9, #11..')', '+'..'.', '0'..#255]; s: 27),
    (cc: [#10]; s: 38),
    (cc: ['*']; s: 37),
    (cc: ['/']; s: 36),
    { 28: }
    (cc: [#1..#9, #11..')', '+'..'.', '0'..#255]; s: 19),
    (cc: ['*']; s: 39),
    (cc: ['/']; s: 28),
    { 29: }
    (cc: [#1..#9, #11..')', '+'..'.', '0'..#255]; s: 19),
    (cc: ['*']; s: 29),
    (cc: ['/']; s: 40),
    { 30: }
    (cc: [#1..#9, #11..')', '+'..'.', '0'..#255]; s: 41),
    (cc: [#10]; s: 38),
    (cc: ['*']; s: 42),
    (cc: ['/']; s: 43),
    { 31: }
    (cc: [#1..#9, #11..')', '+'..'.', '0'..#255]; s: 31),
    (cc: ['*']; s: 32),
    (cc: ['/']; s: 33),
    { 32: }
    (cc: [#1..#9, #11..')', '+'..'.', '0'..#255]; s: 31),
    (cc: ['*']; s: 32),
    (cc: ['/']; s: 44),
    { 33: }
    (cc: [#1..#9, #11..')', '+'..'.', '0'..#255]; s: 31),
    (cc: ['*']; s: 45),
    (cc: ['/']; s: 33),
    { 34: }
    (cc: [#1..#8, #11..#31, '!'..'.', '0'..#255]; s: 16),
    (cc: [#9, ' ']; s: 34),
    (cc: [#10]; s: 35),
    (cc: ['/']; s: 17),
    { 35: }
    { 36: }
    (cc: [#1..#9, #11..')', '+'..'.', '0'..#255]; s: 27),
    (cc: [#10]; s: 38),
    (cc: ['*']; s: 37),
    (cc: ['/']; s: 36),
    { 37: }
    (cc: [#1..#9, #11..')', '+'..'.', '0'..#255]; s: 27),
    (cc: [#10]; s: 38),
    (cc: ['*']; s: 37),
    (cc: ['/']; s: 46),
    { 38: }
    { 39: }
    (cc: [#1..#9, #11..')', '+'..'.', '0'..#255]; s: 27),
    (cc: [#10]; s: 38),
    (cc: ['*']; s: 37),
    (cc: ['/']; s: 47),
    { 40: }
    (cc: [#1..#9, #11..')', '+'..'.', '0'..#255]; s: 48),
    (cc: ['*']; s: 50),
    (cc: ['/']; s: 49),
    { 41: }
    (cc: [#1..#9, #11..')', '+'..'.', '0'..#255]; s: 41),
    (cc: [#10]; s: 38),
    (cc: ['*']; s: 42),
    (cc: ['/']; s: 43),
    { 42: }
    (cc: [#1..#9, #11..')', '+'..'.', '0'..#255]; s: 41),
    (cc: [#10]; s: 38),
    (cc: ['*']; s: 42),
    (cc: ['/']; s: 51),
    { 43: }
    (cc: [#1..#9, #11..')', '+'..'.', '0'..#255]; s: 41),
    (cc: [#10]; s: 38),
    (cc: ['*']; s: 42),
    (cc: ['/']; s: 43),
    { 44: }
    (cc: [#1..#8, #11..#31, '!'..')', '+'..'.', '0'..#255]; s: 52),
    (cc: [#9, ' ']; s: 54),
    (cc: [#10]; s: 55),
    (cc: ['*']; s: 53),
    (cc: ['/']; s: 56),
    { 45: }
    (cc: [#1..#9, #11..')', '+'..'.', '0'..#255]; s: 41),
    (cc: [#10]; s: 38),
    (cc: ['*']; s: 42),
    (cc: ['/']; s: 57),
    { 46: }
    (cc: [#1..#9, #11..')', '+'..'.', '0'..#255]; s: 58),
    (cc: [#10]; s: 61),
    (cc: ['*']; s: 60),
    (cc: ['/']; s: 59),
    { 47: }
    (cc: [#1..#9, #11..')', '+'..'.', '0'..#255]; s: 62),
    (cc: [#10]; s: 38),
    (cc: ['*']; s: 64),
    (cc: ['/']; s: 63),
    { 48: }
    (cc: [#1..#9, #11..')', '+'..'.', '0'..#255]; s: 48),
    (cc: [#10]; s: 66),
    (cc: ['*']; s: 65),
    (cc: ['/']; s: 49),
    { 49: }
    (cc: [#1..#9, #11..')', '+'..'.', '0'..#255]; s: 48),
    (cc: [#10]; s: 66),
    (cc: ['*']; s: 50),
    (cc: ['/']; s: 49),
    { 50: }
    (cc: [#1..#9, #11..')', '+'..'.', '0'..#255]; s: 62),
    (cc: [#10]; s: 67),
    (cc: ['*']; s: 64),
    (cc: ['/']; s: 63),
    { 51: }
    (cc: [#1..#8, #11..#31, '!'..')', '+'..'.', '0'..#255]; s: 68),
    (cc: [#9, ' ']; s: 70),
    (cc: [#10]; s: 71),
    (cc: ['*']; s: 69),
    (cc: ['/']; s: 72),
    { 52: }
    (cc: [#1..#9, #11..')', '+'..'.', '0'..#255]; s: 52),
    (cc: [#10]; s: 66),
    (cc: ['*']; s: 73),
    (cc: ['/']; s: 56),
    { 53: }
    (cc: [#1..#9, #11..')', '+'..'.', '0'..#255]; s: 74),
    (cc: [#10]; s: 67),
    (cc: ['*']; s: 75),
    (cc: ['/']; s: 76),
    { 54: }
    (cc: [#1..#8, #11..#31, '!'..')', '+'..'.', '0'..#255]; s: 52),
    (cc: [#9, ' ']; s: 54),
    (cc: [#10]; s: 77),
    (cc: ['*']; s: 73),
    (cc: ['/']; s: 56),
    { 55: }
    { 56: }
    (cc: [#1..#9, #11..')', '+'..'.', '0'..#255]; s: 52),
    (cc: [#10]; s: 66),
    (cc: ['*']; s: 53),
    (cc: ['/']; s: 56),
    { 57: }
    (cc: [#1..#8, #11..#31, '!'..')', '+'..'.', '0'..#255]; s: 74),
    (cc: [#9, ' ']; s: 78),
    (cc: [#10]; s: 79),
    (cc: ['*']; s: 75),
    (cc: ['/']; s: 80),
    { 58: }
    (cc: [#1..#9, #11..')', '+'..'.', '0'..#255]; s: 58),
    (cc: [#10]; s: 81),
    (cc: ['*']; s: 60),
    (cc: ['/']; s: 59),
    { 59: }
    (cc: [#1..#9, #11..')', '+'..'.', '0'..#255]; s: 58),
    (cc: [#10]; s: 81),
    (cc: ['*']; s: 60),
    (cc: ['/']; s: 59),
    { 60: }
    (cc: [#1..#9, #11..')', '+'..'.', '0'..#255]; s: 58),
    (cc: [#10]; s: 81),
    (cc: ['*']; s: 60),
    (cc: ['/']; s: 59),
    { 61: }
    { 62: }
    (cc: [#1..#9, #11..')', '+'..'.', '0'..#255]; s: 62),
    (cc: [#10]; s: 67),
    (cc: ['*']; s: 64),
    (cc: ['/']; s: 63),
    { 63: }
    (cc: [#1..#9, #11..')', '+'..'.', '0'..#255]; s: 62),
    (cc: [#10]; s: 67),
    (cc: ['*']; s: 64),
    (cc: ['/']; s: 63),
    { 64: }
    (cc: [#1..#9, #11..')', '+'..'.', '0'..#255]; s: 62),
    (cc: [#10]; s: 67),
    (cc: ['*']; s: 64),
    (cc: ['/']; s: 59),
    { 65: }
    (cc: [#1..#9, #11..')', '+'..'.', '0'..#255]; s: 48),
    (cc: [#10]; s: 66),
    (cc: ['*']; s: 65),
    (cc: ['/']; s: 49),
    { 66: }
    { 67: }
    { 68: }
    (cc: [#1..#9, #11..')', '+'..'.', '0'..#255]; s: 68),
    (cc: [#10]; s: 81),
    (cc: ['*']; s: 69),
    (cc: ['/']; s: 72),
    { 69: }
    (cc: [#1..#9, #11..')', '+'..'.', '0'..#255]; s: 68),
    (cc: [#10]; s: 81),
    (cc: ['*']; s: 69),
    (cc: ['/']; s: 82),
    { 70: }
    (cc: [#1..#8, #11..#31, '!'..')', '+'..'.', '0'..#255]; s: 68),
    (cc: [#9, ' ']; s: 70),
    (cc: [#10]; s: 83),
    (cc: ['*']; s: 69),
    (cc: ['/']; s: 72),
    { 71: }
    { 72: }
    (cc: [#1..#9, #11..')', '+'..'.', '0'..#255]; s: 68),
    (cc: [#10]; s: 81),
    (cc: ['*']; s: 69),
    (cc: ['/']; s: 72),
    { 73: }
    (cc: [#1..#9, #11..')', '+'..'.', '0'..#255]; s: 52),

⌨️ 快捷键说明

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