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;