📄 scanner.lex
字号:
import java.util.*;import java.lang.*;import java_cup.runtime.*;import java.io.*;%%%{static scanner foo;public static void init(InputStream is) { foo = new scanner(is);}public static token next_token() throws java.io.IOException { return foo.yylex();}%}%class scanner%type token%eofval{return (new token(sym.EOF));%eofval}NAME=[A-Za-z][A-Za-z0-9_]*WHITE_SPACE_CHAR=[\n\ \t\b\012]INT_NUM = [0-9]+QQSTRING = (\\\"|[^\n\"]|\\{WHITE_SPACE_CHAR}+\\)*QSTRING = (\\\'|[^\n\']|\\{WHITE_SPACE_CHAR}+\\)*CHARACTER = CHAR(ACTER)?INTEGER = INT(EGER)?COMPARISON = (=|<>|<|>|<=|>=)%%<YYINITIAL> ";" { return new token (sym.SEMI); }<YYINITIAL> "," { return new token (sym.COMMA); }<YYINITIAL> "." { return new token (sym.PERIOD); }<YYINITIAL> "(" { return new token (sym.LPAREN); }<YYINITIAL> ")" { return new token (sym.RPAREN); }<YYINITIAL> "*" { return new token (sym.ASTERISK); }<YYINITIAL> "AND" { return new token (sym.AND); }<YYINITIAL> "WHERE" { return new token (sym.WHERE); }<YYINITIAL> "INSERT" { return new token (sym.INSERT); }<YYINITIAL> "UPDATE" { return new token (sym.UPDATE); }<YYINITIAL> "DELETE" { return new token (sym.DELETE); }<YYINITIAL> "SET" { return new token (sym.SET); }<YYINITIAL> "VALUES" { return new token (sym.VALUES); }<YYINITIAL> "INTO" { return new token (sym.INTO); }<YYINITIAL> "SELECT" { return new token (sym.SELECT); }<YYINITIAL> "FROM" { return new token (sym.FROM); }<YYINITIAL> "TABLE" { return new token (sym.TABLE); }<YYINITIAL> "CREATE" { return new token (sym.CREATE); }<YYINITIAL> "NUMERIC" { return new token (sym.NUMERIC); }<YYINITIAL> "DROP" { return new token (sym.DROP); }<YYINITIAL> {INTEGER} { return new token (sym.INTEGER); }<YYINITIAL> {CHARACTER} { return new token (sym.CHARACTER); }<YYINITIAL> {NAME} { return new str_token (sym.NAME, yytext); }<YYINITIAL> {COMPARISON} { return new str_token (sym.COMPARISON, yytext); }<YYINITIAL> {WHITE_SPACE_CHAR} { }<YYINITIAL> {INT_NUM} { return new str_token (sym.INT_NUM, yytext) ; }<YYINITIAL> \"{QQSTRING}\" { return new str_token (sym.STRING, yytext.substring(1, yytext.length() - 1)) ; } <YYINITIAL> \'{QSTRING}\' { return new str_token (sym.STRING, yytext.substring(1, yytext.length() - 1)) ; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -