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

📄 xqlex.pas

📁 TxQuery is an SQL engine implemented in a TDataSet descendant component, that can parse SQL syntax,
💻 PAS
📖 第 1 页 / 共 2 页
字号:
{ 57: }
  3,
  5,
{ 58: }
  4,
{ 59: }
  3
{ 60: }
{ 61: }
);

yyt : array [1..yyntrans] of YYTrec = (
{ 0: }
  ( cc: [ #1..#8,#11..#31,'!','%','&','?','@','\','_','`',
            '{','}'..#127 ]; s: 28),
  ( cc: [ #9 ]; s: 27),
  ( cc: [ #10 ]; s: 26),
  ( cc: [ ' ' ]; s: 25),
  ( cc: [ '"' ]; s: 11),
  ( cc: [ '#' ]; s: 12),
  ( cc: [ '$' ]; s: 9),
  ( cc: [ '''' ]; s: 10),
  ( cc: [ '(' ]; s: 14),
  ( cc: [ ')' ]; s: 15),
  ( cc: [ '*' ]; s: 22),
  ( cc: [ '+' ]; s: 6),
  ( cc: [ ',' ]; s: 13),
  ( cc: [ '-' ]; s: 5),
  ( cc: [ '.' ]; s: 8),
  ( cc: [ '/' ]; s: 3),
  ( cc: [ '0'..'9' ]; s: 7),
  ( cc: [ ':' ]; s: 19),
  ( cc: [ ';' ]; s: 20),
  ( cc: [ '<' ]; s: 18),
  ( cc: [ '=' ]; s: 21),
  ( cc: [ '>' ]; s: 17),
  ( cc: [ 'A'..'Z','a'..'z',#128..#255 ]; s: 2),
  ( cc: [ '[' ]; s: 4),
  ( cc: [ ']' ]; s: 16),
  ( cc: [ '^' ]; s: 23),
  ( cc: [ '|' ]; s: 24),
{ 1: }
  ( cc: [ #1..#8,#11..#31,'!','%','&','?','@','\','_','`',
            '{','}'..#127 ]; s: 28),
  ( cc: [ #9 ]; s: 27),
  ( cc: [ #10 ]; s: 26),
  ( cc: [ ' ' ]; s: 25),
  ( cc: [ '"' ]; s: 11),
  ( cc: [ '#' ]; s: 12),
  ( cc: [ '$' ]; s: 9),
  ( cc: [ '''' ]; s: 10),
  ( cc: [ '(' ]; s: 14),
  ( cc: [ ')' ]; s: 15),
  ( cc: [ '*' ]; s: 22),
  ( cc: [ '+' ]; s: 6),
  ( cc: [ ',' ]; s: 13),
  ( cc: [ '-' ]; s: 5),
  ( cc: [ '.' ]; s: 8),
  ( cc: [ '/' ]; s: 3),
  ( cc: [ '0'..'9' ]; s: 7),
  ( cc: [ ':' ]; s: 19),
  ( cc: [ ';' ]; s: 20),
  ( cc: [ '<' ]; s: 18),
  ( cc: [ '=' ]; s: 21),
  ( cc: [ '>' ]; s: 17),
  ( cc: [ 'A'..'Z','a'..'z',#128..#255 ]; s: 2),
  ( cc: [ '[' ]; s: 4),
  ( cc: [ ']' ]; s: 16),
  ( cc: [ '^' ]; s: 23),
  ( cc: [ '|' ]; s: 24),
{ 2: }
  ( cc: [ '0'..'9','A'..'Z','_','a'..'z',#128..#255 ]; s: 29),
{ 3: }
  ( cc: [ '*' ]; s: 30),
{ 4: }
  ( cc: [ #1..')','+'..'Z','\','^'..#255 ]; s: 32),
  ( cc: [ '*' ]; s: 31),
  ( cc: [ ']' ]; s: 33),
{ 5: }
  ( cc: [ '-' ]; s: 34),
  ( cc: [ '0'..'9' ]; s: 35),
{ 6: }
  ( cc: [ '0'..'9' ]; s: 35),
{ 7: }
  ( cc: [ '.' ]; s: 37),
  ( cc: [ '0'..'9' ]; s: 36),
{ 8: }
  ( cc: [ '0'..'9' ]; s: 38),
{ 9: }
  ( cc: [ '0'..'9','A'..'F','a'..'f' ]; s: 39),
{ 10: }
  ( cc: [ #1..'&','('..#255 ]; s: 40),
  ( cc: [ '''' ]; s: 41),
{ 11: }
  ( cc: [ #1..'!','#'..#255 ]; s: 42),
  ( cc: [ '"' ]; s: 43),
{ 12: }
  ( cc: [ #1..'"','$'..#255 ]; s: 44),
  ( cc: [ '#' ]; s: 45),
{ 13: }
{ 14: }
{ 15: }
{ 16: }
{ 17: }
  ( cc: [ '=' ]; s: 46),
{ 18: }
  ( cc: [ '=' ]; s: 48),
  ( cc: [ '>' ]; s: 47),
{ 19: }
{ 20: }
{ 21: }
{ 22: }
{ 23: }
{ 24: }
  ( cc: [ '|' ]; s: 49),
{ 25: }
{ 26: }
{ 27: }
{ 28: }
{ 29: }
  ( cc: [ '0'..'9','A'..'Z','_','a'..'z',#128..#255 ]; s: 29),
{ 30: }
  ( cc: [ #1..')','+'..#255 ]; s: 30),
  ( cc: [ '*' ]; s: 50),
{ 31: }
  ( cc: [ #1..')','+'..'Z','\','^'..#255 ]; s: 31),
  ( cc: [ '*' ]; s: 61),
  ( cc: [ '[' ]; s: 60),
  ( cc: [ ']' ]; s: 51),
{ 32: }
  ( cc: [ #1..'Z','\','^'..#255 ]; s: 32),
  ( cc: [ ']' ]; s: 33),
{ 33: }
{ 34: }
  ( cc: [ #1..',','.'..#255 ]; s: 34),
  ( cc: [ '-' ]; s: 52),
{ 35: }
  ( cc: [ '.' ]; s: 53),
  ( cc: [ '0'..'9' ]; s: 35),
{ 36: }
  ( cc: [ '.' ]; s: 37),
  ( cc: [ '0'..'9' ]; s: 36),
{ 37: }
  ( cc: [ '0'..'9' ]; s: 37),
{ 38: }
  ( cc: [ '0'..'9' ]; s: 38),
  ( cc: [ 'E','e' ]; s: 54),
{ 39: }
  ( cc: [ '0'..'9','A'..'F','a'..'f' ]; s: 39),
{ 40: }
  ( cc: [ #1..'&','('..#255 ]; s: 40),
  ( cc: [ '''' ]; s: 41),
{ 41: }
{ 42: }
  ( cc: [ #1..'!','#'..#255 ]; s: 42),
  ( cc: [ '"' ]; s: 43),
{ 43: }
{ 44: }
  ( cc: [ #1..'"','$'..#255 ]; s: 44),
  ( cc: [ '#' ]; s: 45),
{ 45: }
{ 46: }
{ 47: }
{ 48: }
{ 49: }
{ 50: }
  ( cc: [ '/' ]; s: 55),
{ 51: }
  ( cc: [ #1..')','+'..#255 ]; s: 60),
  ( cc: [ '*' ]; s: 56),
{ 52: }
  ( cc: [ '-' ]; s: 58),
{ 53: }
  ( cc: [ '0'..'9' ]; s: 37),
{ 54: }
  ( cc: [ '+','-' ]; s: 53),
{ 55: }
{ 56: }
  ( cc: [ ']' ]; s: 59),
{ 57: }
{ 58: }
{ 59: }
{ 60: }
  ( cc: [ #1..')','+'..#255 ]; s: 60),
  ( cc: [ '*' ]; s: 56),
{ 61: }
  ( cc: [ #1..'Z','\','^'..#255 ]; s: 32),
  ( cc: [ ']' ]; s: 57)
);

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

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

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

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

yytl : array [0..yynstates-1] of SmallInt = (
{ 0: } 1,
{ 1: } 28,
{ 2: } 55,
{ 3: } 56,
{ 4: } 57,
{ 5: } 60,
{ 6: } 62,
{ 7: } 63,
{ 8: } 65,
{ 9: } 66,
{ 10: } 67,
{ 11: } 69,
{ 12: } 71,
{ 13: } 73,
{ 14: } 73,
{ 15: } 73,
{ 16: } 73,
{ 17: } 73,
{ 18: } 74,
{ 19: } 76,
{ 20: } 76,
{ 21: } 76,
{ 22: } 76,
{ 23: } 76,
{ 24: } 76,
{ 25: } 77,
{ 26: } 77,
{ 27: } 77,
{ 28: } 77,
{ 29: } 77,
{ 30: } 78,
{ 31: } 80,
{ 32: } 84,
{ 33: } 86,
{ 34: } 86,
{ 35: } 88,
{ 36: } 90,
{ 37: } 92,
{ 38: } 93,
{ 39: } 95,
{ 40: } 96,
{ 41: } 98,
{ 42: } 98,
{ 43: } 100,
{ 44: } 100,
{ 45: } 102,
{ 46: } 102,
{ 47: } 102,
{ 48: } 102,
{ 49: } 102,
{ 50: } 102,
{ 51: } 103,
{ 52: } 105,
{ 53: } 106,
{ 54: } 107,
{ 55: } 108,
{ 56: } 108,
{ 57: } 109,
{ 58: } 109,
{ 59: } 109,
{ 60: } 109,
{ 61: } 111
);

yyth : array [0..yynstates-1] of SmallInt = (
{ 0: } 27,
{ 1: } 54,
{ 2: } 55,
{ 3: } 56,
{ 4: } 59,
{ 5: } 61,
{ 6: } 62,
{ 7: } 64,
{ 8: } 65,
{ 9: } 66,
{ 10: } 68,
{ 11: } 70,
{ 12: } 72,
{ 13: } 72,
{ 14: } 72,
{ 15: } 72,
{ 16: } 72,
{ 17: } 73,
{ 18: } 75,
{ 19: } 75,
{ 20: } 75,
{ 21: } 75,
{ 22: } 75,
{ 23: } 75,
{ 24: } 76,
{ 25: } 76,
{ 26: } 76,
{ 27: } 76,
{ 28: } 76,
{ 29: } 77,
{ 30: } 79,
{ 31: } 83,
{ 32: } 85,
{ 33: } 85,
{ 34: } 87,
{ 35: } 89,
{ 36: } 91,
{ 37: } 92,
{ 38: } 94,
{ 39: } 95,
{ 40: } 97,
{ 41: } 97,
{ 42: } 99,
{ 43: } 99,
{ 44: } 101,
{ 45: } 101,
{ 46: } 101,
{ 47: } 101,
{ 48: } 101,
{ 49: } 101,
{ 50: } 102,
{ 51: } 104,
{ 52: } 105,
{ 53: } 106,
{ 54: } 107,
{ 55: } 107,
{ 56: } 108,
{ 57: } 108,
{ 58: } 108,
{ 59: } 108,
{ 60: } 110,
{ 61: } 112
);


var yyn : Integer;

label start, scan, action;

begin

start:

  (* initialize: *)

  yynew;

scan:

  (* mark positions and matches: *)

  for yyn := yykl[yystate] to     yykh[yystate] do yymark(yyk[yyn]);
  for yyn := yymh[yystate] downto yyml[yystate] do yymatch(yym[yyn]);

  if yytl[yystate]>yyth[yystate] then goto action; (* dead state *)

  (* get next character: *)

  yyscan;

  (* determine action: *)

  yyn := yytl[yystate];
  while (yyn<=yyth[yystate]) and not (yyactchar in yyt[yyn].cc) do inc(yyn);
  if yyn>yyth[yystate] then goto action;
    (* no transition on yyactchar in this state *)

  (* switch to new state: *)

  yystate := yyt[yyn].s;

  goto scan;

action:

  (* execute action: *)

  if yyfind(yyrule) then
    begin
      yyaction(yyrule);
      if yyreject then goto action;
    end
  else if not yydefault and yywrap then
    begin
      yyclear;
      returni(0);
    end;

  if not yydone then goto start;

  yylex := yyretval;

end(*yylex*);

end.

⌨️ 快捷键说明

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