<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 18,  comments - 0,  trackbacks - 0

    class L extends Lexer;

    options {
     k=5;
     charVocabulary = '\u0000' .. '\uFFFE';
     testLiterals=false;
     caseSensitive = false;
     caseSensitiveLiterals = true;
    }

    ONE_ARG_OP
     : '~';
    TWO_ARG_OP
     : '&' | '|' | '^' | '+' | '-' | '/' | '%'; 
    STAR
     : '*';
    COMPARE_OP
     : '>' | '<' | ">=" | "<=" | "!=" | "<>" | "=";
    NOT_EXIST:
     "not exist";
    EXIST:
     "exist";
    COMMA
     : ',';
    SEMI: ';';
    POINT
     : '.';
    LPAREN
     : '(';
    RPAREN
     : ')';

    PARAM_LPAREN
     : '{';

    PARAM_RPAREN
     : '}';


    COLUMN
     : "column";
    WHERE
     : "where";

    WS : (' '|'\n'|'\r'|'\t')+ {$setType(Token.SKIP);}
        ;

    QUOTED_STRING
     : ('"'|'\'') (ESC|~('\''|'"'|'\\'|'\n'|'\r'))* ('"'|'\'')
     ;
    protected
    ESC
     : '\\'
      ( 'n'
      | 'r'
      | 't'
      | 'b'
      | 'f'
      | '"'
      | '\''
      | '\\'
      | '0'..'3'
       (
        options {
         warnWhenFollowAmbig = false;
        }
       : '0'..'7'
        (
         options {
          warnWhenFollowAmbig = false;
         }
        : '0'..'7'
        )?
       )?
      | '4'..'7'
       (
        options {
         warnWhenFollowAmbig = false;
        }
       : '0'..'7'
       )?
      )
     ;

    PARAM_ID
     : PARAM_LPAREN ID PARAM_RPAREN
     ;

    ID options {testLiterals=true;}
     : ID_START_LETTER ( ID_LETTER )*;

    protected
    ID_START_LETTER
        :    'a'..'z'
        | '_'
        |    '\u0080'..'\ufffe'
        ;
    protected
    ID_LETTER
        : ID_START_LETTER
        | '0'..'9'
        | '/'
        ;

    REAL_NUM
     : NUM (POINT DOT_NUM)?
     ;
    protected
    NUM : '0'
     | NUM_START (NUM_LETTER)*
     ;
    protected
    DOT_NUM
     : (NUM_LETTER)+
     ;
    protected
    NUM_START
     : '1'..'9'
     ;
    protected
    NUM_LETTER
     : '0'..'9'
     ;

    ML_COMMENT
     : "/*"
      ( /* '\r' '\n' can be matched in one alternative or by matching
        '\r' in one iteration and '\n' in another.  I am trying to
        handle any flavor of newline that comes in, but the language
        that allows both "\r\n" and "\r" and "\n" to all be valid
        newline is ambiguous.  Consequently, the resulting grammar
        must be ambiguous.  I'm shutting this warning off.
        */
       options {
        generateAmbigWarnings=false;
       }
      :
       { LA(2)!='/' }? '*'
      | '\r' '\n'  {newline();}
      | '\r'   {newline();}
      | '\n'   {newline();}
      | ~('*'|'\n'|'\r')
      )*
      "*/"
      {$setType(Token.SKIP);}
     ;

    posted on 2007-04-03 17:59 LORD BLOG 閱讀(407) 評(píng)論(0)  編輯  收藏 所屬分類: 項(xiàng)目筆記
    主站蜘蛛池模板: 亚洲av永久无码精品国产精品| 国产亚洲精品福利在线无卡一 | 高清永久免费观看| 亚洲日韩VA无码中文字幕| 精品一区二区三区无码免费直播 | 中文字幕亚洲不卡在线亚瑟| 国产裸体美女永久免费无遮挡| AV在线播放日韩亚洲欧| 久久免费99精品国产自在现线 | 亚洲男人天堂2018av| 麻豆国产人免费人成免费视频| 亚洲av色香蕉一区二区三区蜜桃| 日本v片免费一区二区三区| 免费视频精品一区二区| 亚洲色大成网站www永久一区 | 色噜噜综合亚洲av中文无码| 免费观看激色视频网站(性色)| 国产成人精品亚洲2020| 又黄又大又爽免费视频| a毛片免费播放全部完整| 亚洲另类激情综合偷自拍| 成人免费午夜无码视频| 国产亚洲精品2021自在线| 久久亚洲国产精品五月天婷| 久久精品成人免费看| 亚洲av无码专区在线| 免费人成视频在线观看视频| 免费无码又爽又刺激高潮软件| 亚洲男女性高爱潮网站| 免费v片在线观看品善网| 国产自国产自愉自愉免费24区| 亚洲精品人成电影网| 国产无遮挡裸体免费视频| 中文字幕不卡免费视频| 亚洲乱码中文论理电影| 亚洲精品人成无码中文毛片| 91在线手机精品免费观看| 激情婷婷成人亚洲综合| 亚洲男人天堂2017| 免费一级毛片清高播放| 99国产精品视频免费观看|