Advertisement
Guest User

Untitled

a guest
Jun 22nd, 2017
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
D 1.87 KB | None | 0 0
  1. static this(){
  2.     t_semi = new Parser(null);
  3.     t_lpar = new Parser(null);
  4.     t_rpar = new Parser(null);
  5.     t_uscore = new Parser(null);
  6.     t_eq = new Parser(null);
  7.     t_dot = new Parser(null);
  8.     t_mul = new Parser(null);
  9.     t_colon = new Parser(null);
  10.     t_comma = new Parser(null);
  11.     t_public = new Parser(null);
  12.     t_import = new Parser(null);
  13.     t_str = new Parser(null);
  14.     t_id = new Parser(null);
  15.  
  16.     start = new Parser(null);
  17.     importStmt = new Parser(null);
  18.     import1 = new Parser(null);
  19.     import12 = new Parser(null);
  20.     import2 = new Parser(null);
  21.     import6 = new Parser(null);
  22.     import22 = new Parser(null);
  23.     import3 = new Parser(null);
  24.     import4 = new Parser(null);
  25.     import5 = new Parser(null);
  26.  
  27.  
  28.     t_semi <<= P(";");
  29.     t_lpar <<= P("(");
  30.     t_rpar <<= P(")");
  31.     t_uscore <<= P("_");
  32.     t_eq <<= P("=");
  33.     t_dot <<= P(".");
  34.     t_mul <<= P("*");
  35.     t_colon <<= P(":");
  36.     t_comma <<= P(",");
  37.     t_public <<= P("public");
  38.     t_import <<= P("import");
  39.     t_str <<= P(TokenType.StringLiteral);
  40.     t_id <<= P(TokenType.Identifier);
  41.  
  42.     start <<= *importStmt & P("EOF");
  43.     importStmt <<= -t_public & t_import & import1;
  44.     import1 <<= t_semi & t_lpar & import2 &
  45.                 *(t_semi & (import2 | import12)) & t_rpar & t_semi
  46.             | import2;
  47.     import12 <<= t_lpar & import22 & *(t_semi & (import22 | import12)) & t_rpar;
  48.     import2 <<= t_str & -import4
  49.             | import6
  50.             | t_id & ((t_eq & (t_id & -import3 |
  51.                                import6 | t_str & -import4)) | -import3);
  52.     import6 <<= +(t_uscore & t_dot) & t_id & -import3;
  53.     import22 <<= t_id & -(t_eq & t_id) & -import3;
  54.     import3 <<= t_dot & (t_id & -import3 | t_mul | t_uscore)
  55.             | import4;
  56.     import4 <<= t_colon & import5 & *(t_comma & import5);
  57.     import5 <<= t_uscore & t_eq & t_id
  58.             | t_id & -(t_eq & t_id);
  59. }
  60.  
  61. Parser
  62.     t_semi,
  63.     t_lpar,
  64.     t_rpar,
  65.     t_uscore,
  66.     t_eq,
  67.     t_dot,
  68.     t_mul,
  69.     t_colon,
  70.     t_comma,
  71.     t_public,
  72.     t_import,
  73.     t_str,
  74.     t_id,
  75.  
  76.     start,
  77.     importStmt,
  78.     import1,
  79.     import12,
  80.     import2,
  81.     import6,
  82.     import22,
  83.     import3,
  84.     import4,
  85.     import5;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement