This commit is contained in:
wenshao
2014-06-01 19:16:20 +08:00
23 changed files with 478 additions and 73 deletions
@@ -69,6 +69,8 @@ public class Lexer {
private int varIndex = -1;
protected CommentHandler commentHandler;
protected boolean hasComment = false;
public Lexer(String input){
this(input, true);
@@ -747,6 +749,7 @@ public class Lexer {
stringVal = subString(mark, bufPos);
token = Token.MULTI_LINE_COMMENT;
hasComment = true;
return;
}
@@ -777,6 +780,7 @@ public class Lexer {
stringVal = subString(mark + 1, bufPos);
token = Token.LINE_COMMENT;
hasComment = true;
return;
}
}
@@ -1045,4 +1049,8 @@ public class Lexer {
boolean handle(Token lastToken, String comment);
}
public boolean isHasComment() {
return hasComment;
}
}
@@ -1369,29 +1369,19 @@ public class SQLExprParser extends SQLParser {
}
charType.setCharSetName(lexer.stringVal());
lexer.nextToken();
if (lexer.token() == Token.IDENTIFIER) {
if (lexer.stringVal().equalsIgnoreCase("COLLATE")) {
lexer.nextToken();
if (lexer.token() != Token.IDENTIFIER) {
throw new ParserException();
}
charType.setCollate(lexer.stringVal());
lexer.nextToken();
}
}
}else if(identifierEquals("COLLATE")){
lexer.nextToken();
if (lexer.token() != Token.IDENTIFIER) {
throw new ParserException();
}
charType.setCollate(lexer.stringVal());
lexer.nextToken();
}
if (lexer.token() == Token.IDENTIFIER) {
if (lexer.stringVal().equalsIgnoreCase("COLLATE")) {
lexer.nextToken();
if (lexer.token() != Token.IDENTIFIER) {
throw new ParserException();
}
charType.setCollate(lexer.stringVal());
lexer.nextToken();
}
}
return charType;
}