setJavaLoader(arguments.javaLoader); setTQLParser(getJavaLoader().create("com.compoundtheory.antlr.TqlParser")); return this; var input = 0; var lexer = 0; var tokens = 0; var parser = 0; var root = 0; input = getJavaLoader().create("com.compoundtheory.antlr.ANTLRNoCaseStringStream").init(arguments.tql); lexer = getJavaLoader().create("com.compoundtheory.antlr.TqlLexer").init(input); tokens = getJavaLoader().create("org.antlr.runtime.CommonTokenStream").init(lexer); parser = getJavaLoader().create("com.compoundtheory.antlr.TqlParser").init(tokens); root = parser.selectStatement(); if(lexer.hasError()) { handleTQLSyntaxError(lexer.getRecognitionException(), lexer.getErrorMessage(), arguments.tql); } else if(parser.hasError()) { handleTQLSyntaxError(parser.getRecognitionException(), parser.getErrorMessage(), arguments.tql); } return root.getTree(); #htmlDisplayTree(arguments.tree)# var child = 0; var counter = 0; var padding = RepeatString("   ", arguments.level); var str = "
"& padding &"{
" & padding & "[" & arguments.level & "] " & arguments.tree.getText(); for(; counter lt arguments.tree.getChildCount(); counter = counter + 1) { child = arguments.tree.getChild(JavaCast("int", counter)); str = str & htmlDisplayTree(child, arguments.level + 1); } str = str & "
"& padding &"}
"; return str;
var line = arguments.recognitionException.line; var charPositionInLine = arguments.recognitionException.charPositionInLine; createObject("component", "transfer.com.tql.exception.TQLSyntaxException").init("TQL syntax error at line #line#, character #charPositionInLine#, near '" & resolveErrorNear(arguments.tql, line, charPositionInLine) & "'", arguments.errorMessage & " for TQL: " & chr(10) & chr(13) & arguments.tql); //use character 10, as it comes at the beginning var lines = ListToArray(tql, #chr(10)#); var nearLine = ""; var EOF = false; var c = ""; var errorToken = ""; if(arguments.line gt 0 AND arguments.line lte ArrayLen(lines)) { nearLine = lines[arguments.line]; if(arguments.charPosition lt Len(nearLine)) { c = nearLine.charAt(JavaCast("int", arguments.charPosition)); } errorToken = c; } while(NOT EOF) { arguments.charPosition = arguments.charPosition + 1; if(arguments.charPosition gte Len(nearLine)) { EOF = true; } else { c = nearLine.charAt(JavaCast("int", arguments.charPosition)); if(c eq " ") { EOF = true; } else { errorToken = errorToken & c; } } } return errorToken;