@Override
public void enterPattern_matcher(SQLParser.Pattern_matcherContext ctx) {
super.enterPattern_matcher(ctx);
for (int i = 0; i < ctx.getChildCount(); i++) {
ParseTree child = ctx.getChild(i);
if (child instanceof TerminalNodeImpl) {
if (isNot(child.getText())) {
currentPredicate.negate();
}
break;
}
}
if (currentPredicate.isNegated()) {
currentPredicate.setOperator("not like");
} else {
currentPredicate.setOperator("like");
}
skipNextTerminal = true;
}
java类org.antlr.v4.runtime.tree.ParseTree的实例源码
AbstractWhereClauseListener.java 文件源码
项目:dragoman
阅读 18
收藏 0
点赞 0
评论 0
SQLParser.java 文件源码
项目:SQLParser
阅读 32
收藏 0
点赞 0
评论 0
public PlanNode callSql(String sqlstring, ArrayList list) throws FileNotFoundException, IOException {
for (int i=0; i< list.size() ; i++) {
sqlstring = sqlstring.replaceFirst("\\?", (String) list.get(i));
}
ANTLRInputStream input = new ANTLRInputStream( new ByteArrayInputStream(sqlstring.getBytes()));
PLSQLLexer lexer = new PLSQLLexer(input);
CommonTokenStream tokens = new CommonTokenStream(lexer);
PLSQLParser parser = new PLSQLParser(tokens);
parser.setBuildParseTree(true);
ParseTree tree = parser.sql_statement();
ParseTreeWalker walker = new ParseTreeWalker();
SQLModel model = new SQLModel();
walker.walk(new MyListener(model), tree);
return model.current;
}
GraphParser.java 文件源码
项目:digraph-parser
阅读 30
收藏 0
点赞 0
评论 0
public GraphParser(InputStream is) throws GraphParserException {
DOTLexer lexer = null;
DOTParser parser = null;
try {
lexer = new DOTLexer(new ANTLRInputStream(is));
lexer.addErrorListener(new ErrorListener());
parser = new DOTParser(new CommonTokenStream(lexer));
parser.setErrorHandler(new ExceptionErrorStrategy());
parser.addErrorListener(new ErrorListener());
ParseTree tree = parser.graph();
ParseTreeWalker.DEFAULT.walk(new NodeListener(), tree);
ParseTreeWalker.DEFAULT.walk(new EdgeListener(), tree);
}
catch (Throwable t) {
if (mErrMsg != null) throw new GraphParserException(mErrMsg, t);
if (lexer != null) {
mErrMsg = "at line " + lexer.getLine() + ":" + lexer.getCharPositionInLine();
throw new GraphParserException(mErrMsg, t);
}
throw new GraphParserException(t);
}
if (mErrMsg != null) throw new GraphParserException(mErrMsg);
}
EntityCache.java 文件源码
项目:ts-swift-transpiler
阅读 18
收藏 0
点赞 0
评论 0
public Expression getFunctionTypeEndingWithVariadic(String varName, ParseTree node) {
String[] params = varName.split("\\$");
if(params.length < 2) return null;
for(int i = params.length - 1; i >= 1; i--) {
String param = params[i];
for(int j = i + 1; j < params.length; j++) if(!params[j].equals(param)) return null;
String subVarName = "";
for(int j = 0; j < i; j++) subVarName += (j > 0 ? "$" : "") + params[j];
subVarName += "$_Array";
CacheObject cache = findCache(subVarName, node);
/*if(cache != null && cache.type instanceof FunctionType) {
List<AbstractType> parameterTypes = ((FunctionType)cache.type).parameterTypes;
if(!parameterTypes.get(parameterTypes.size() - 1).resulting(null).swiftType().equals(param.split("_")[1])) continue;
return new Expression(subVarName, cache.type);
}*/
}
return null;
}
ApiConstructor.java 文件源码
项目:rest-modeling-framework
阅读 18
收藏 0
点赞 0
评论 0
@Override
public Object visitApiFacets(RAMLParser.ApiFacetsContext ctx) {
// TODO move creation of security schemes to 1 pass
final RAMLParser.SecuritySchemesFacetContext securitySchemesFacet = ctx.securitySchemesFacet();
if (securitySchemesFacet != null) {
visitSecuritySchemesFacet(securitySchemesFacet);
}
for (int i = 0; i < ctx.getChildCount(); i++) {
final ParseTree child = ctx.getChild(i);
if (child != securitySchemesFacet) {
child.accept(this);
}
}
return scope.eObject();
}
Utilities.java 文件源码
项目:Tarski
阅读 36
收藏 0
点赞 0
评论 0
/**
* Cloning expression to create new same expression.
*/
public static ExprContext cloneExprContext(final ExprContext expr) {
final ExprContext clone = createContextType(expr);
clone.copyFrom(expr);
for (final ParseTree child : expr.children) {
if (child instanceof TerminalNode) {
clone.addChild(new TerminalNodeImpl(((TerminalNode) child).getSymbol()));
} else if (child instanceof ExprContext) {
final ExprContext cloneChild = cloneExprContext((ExprContext) child);
clone.addChild(cloneChild);
setLeftRight(clone, cloneChild);
} else if (child instanceof Token) {
clone.addChild(new CommonToken((Token) child));
}
}
return clone;
}
ParseTreeErrorListenerTest.java 文件源码
项目:athena
阅读 25
收藏 0
点赞 0
评论 0
/**
* Checks that no exception is generated for YANG file with valid syntax.
*/
@Test
public void checkValidYangFileForNoSyntaxError() throws IOException {
ANTLRInputStream input = new ANTLRFileStream("src/test/resources/YangFileWithoutSyntaxError.yang");
// Create a lexer that feeds off of input char stream.
GeneratedYangLexer lexer = new GeneratedYangLexer(input);
// Create a buffer of tokens pulled from the lexer.
CommonTokenStream tokens = new CommonTokenStream(lexer);
// Create a parser that feeds off the tokens buffer.
GeneratedYangParser parser = new GeneratedYangParser(tokens);
// Remove console error listener.
parser.removeErrorListeners();
// Create instance of customized error listener.
ParseTreeErrorListener parseTreeErrorListener = new ParseTreeErrorListener();
// Add customized error listener to catch errors during parsing.
parser.addErrorListener(parseTreeErrorListener);
// Begin parsing YANG file and generate parse tree.
ParseTree tree = parser.yangfile();
}
ParseTreeErrorListenerTest.java 文件源码
项目:athena
阅读 18
收藏 0
点赞 0
评论 0
/**
* Checks that exception is generated for YANG file with invalid syntax.
*/
@Test
public void checkInvalidYangFileForSyntaxError() throws IOException {
// Get the exception occurred during parsing.
thrown.expect(ParserException.class);
thrown.expect(CustomExceptionMatcher.errorLocation(3, 0));
thrown.expectMessage("no viable alternative at input 'yang-version 1\\nnamespace'");
ANTLRInputStream input = new ANTLRFileStream("src/test/resources/YangFileWithSyntaxError.yang");
// Create a lexer that feeds off of input char stream.
GeneratedYangLexer lexer = new GeneratedYangLexer(input);
// Create a buffer of tokens pulled from the lexer.
CommonTokenStream tokens = new CommonTokenStream(lexer);
// Create a parser that feeds off the tokens buffer.
GeneratedYangParser parser = new GeneratedYangParser(tokens);
// Remove console error listener.
parser.removeErrorListeners();
// Create instance of customized error listener.
ParseTreeErrorListener parseTreeErrorListener = new ParseTreeErrorListener();
// Add customized error listener to catch errors during parsing.
parser.addErrorListener(parseTreeErrorListener);
// Begin parsing YANG file and generate parse tree.
ParseTree tree = parser.yangfile();
}
AntlrBridge.java 文件源码
项目:Project-SADS
阅读 17
收藏 0
点赞 0
评论 0
public AntlrBridge(String input){
// String inputFile = null;
// if ( input.length()>0 ) inputFile = input;
// InputStream is = input;
// if ( inputFile!=null ) is = new FileInputStream(inputFile);
ANTLRInputStream antlrInput = new ANTLRInputStream(input);
SequenceAnalyzerLexer lexer = new SequenceAnalyzerLexer(antlrInput);
CommonTokenStream tokens = new CommonTokenStream(lexer);
SequenceAnalyzerParser parser = new SequenceAnalyzerParser(tokens);
ParseTree tree = parser.prog(); // parse
CommandObjectVisitor coVisitor = new CommandObjectVisitor();
coVisitor.visit(tree);
Stack<CommandObject> commandObjectStack = coVisitor.commandObjectStack;
commandExecutor.executeStack(commandObjectStack);
}
UserAgentAnalyzerDirect.java 文件源码
项目:yauaa
阅读 29
收藏 0
点赞 0
评论 0
private void inform(String match, String key, String value, ParseTree ctx) {
Set<MatcherAction> relevantActions = informMatcherActions.get(match.toLowerCase(Locale.ENGLISH));
if (verbose) {
if (relevantActions == null) {
LOG.info("--- Have (0): {}", match);
} else {
LOG.info("+++ Have ({}): {}", relevantActions.size(), match);
int count = 1;
for (MatcherAction action : relevantActions) {
LOG.info("+++ -------> ({}): {}", count, action.toString());
count++;
}
}
}
if (relevantActions != null) {
for (MatcherAction matcherAction : relevantActions) {
matcherAction.inform(key, value, ctx);
}
}
}
StepWordRange.java 文件源码
项目:yauaa
阅读 18
收藏 0
点赞 0
评论 0
@Override
public WalkResult walk(ParseTree tree, String value) {
String actualValue = getActualValue(tree, value);
String filteredValue;
if (tree.getChildCount() == 1 && (
tree.getChild(0) instanceof SingleVersionContext ||
tree.getChild(0) instanceof SingleVersionWithCommasContext)) {
filteredValue = VersionSplitter.getInstance().getSplitRange(actualValue, firstWord, lastWord);
} else {
filteredValue = WordSplitter.getInstance().getSplitRange(actualValue, firstWord, lastWord);
}
if (filteredValue == null) {
return null;
}
return walkNextStep(tree, filteredValue);
}
CQLParserFunction.java 文件源码
项目:cql-module
阅读 19
收藏 0
点赞 0
评论 0
@Override
public Sequence eval(final Sequence[] args, final Sequence contextSequence) throws XPathException {
final ANTLRInputStream is = new ANTLRInputStream(args[0].getStringValue());
final CorpusQLLexer lexer = new CorpusQLLexer(is);
final CommonTokenStream tokens = new CommonTokenStream(lexer);
final CorpusQLParser parser = new CorpusQLParser(tokens);
final ParseTree tree = parser.query();
final MemTreeBuilder builder = new MemTreeBuilder();
builder.startDocument();
final CorpusQLXMLVisitor xmlVisitor = new CorpusQLXMLVisitor(builder);
xmlVisitor.visit(tree);
builder.endDocument();
return builder.getDocument();
}
InstructionGenerator.java 文件源码
项目:antsdb
阅读 16
收藏 0
点赞 0
评论 0
@SuppressWarnings("unchecked")
static public Generator<ParseTree> getGenerator(ParseTree ctx) throws OrcaException {
Class<?> klass = ctx.getClass();
Generator<ParseTree> generator = _generatorByName.get(klass);
if (generator == null) {
String key = StringUtils.removeStart(klass.getSimpleName(), "FishParser$");
key = StringUtils.removeEnd(key, "Context");
key += "Generator";
try {
key = InstructionGenerator.class.getPackage().getName() + "." + key;
Class<?> generatorClass = Class.forName(key);
generator = (Generator<ParseTree>)generatorClass.newInstance();
_generatorByName.put(klass, generator);
}
catch (Exception x) {
throw new OrcaException("instruction geneartor is not found: " + key, x);
}
}
return generator;
}
Trainer.java 文件源码
项目:codebuff
阅读 27
收藏 0
点赞 0
评论 0
/** Walk upwards from node until we find a child of p at t's char position.
* Don't see alignment with self, t, or element *after* us.
* return null if there is no such ancestor p.
*/
public static Pair<ParserRuleContext,Integer> earliestAncestorWithChildStartingAtCharPos(ParserRuleContext node, Token t, int charpos) {
ParserRuleContext p = node;
while ( p!=null ) {
// check all children of p to see if one of them starts at charpos
for (int i = 0; i<p.getChildCount(); i++) {
ParseTree child = p.getChild(i);
Token start;
if ( child instanceof ParserRuleContext ) {
start = ((ParserRuleContext) child).getStart();
}
else { // must be token
start = ((TerminalNode)child).getSymbol();
}
// check that we don't see alignment with self or element *after* us
if ( start.getTokenIndex()<t.getTokenIndex() && start.getCharPositionInLine()==charpos ) {
return new Pair<>(p,i);
}
}
p = p.getParent();
}
return null;
}
ScimGroupFilterVisitor.java 文件源码
项目:gluu
阅读 18
收藏 0
点赞 0
评论 0
/**
* {@inheritDoc}
* <p>
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*
* @param ctx
*/
@Override
public String visitATTR_OPER_EXPR(ScimFilterParser.ATTR_OPER_EXPRContext ctx) {
logger.info(" ScimGroupFilterVisitor.visitATTR_OPER_EXPR() ");
ParseTree parent = ctx.getParent();
while (parent != null) {
if (parent.getClass().getSimpleName().equalsIgnoreCase(ScimFilterParser.LBRAC_EXPR_RBRACContext.class.getSimpleName())) {
logger.info("********** PARENT = " + parent.getClass().getSimpleName());
String attrName = ((ScimFilterParser.LBRAC_EXPR_RBRACContext)parent).ATTRNAME() + "." + ctx.ATTRNAME().getText();
return attrOperCriteriaResolver(attrName, visit(ctx.operator()), visit(ctx.expression()));
} else {
parent = parent.getParent();
}
}
return attrOperCriteriaResolver(ctx.ATTRNAME().getText(), visit(ctx.operator()), visit(ctx.expression()));
}
FidoDeviceFilterVisitor.java 文件源码
项目:gluu
阅读 18
收藏 0
点赞 0
评论 0
/**
* {@inheritDoc}
* <p>
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*
* @param ctx
*/
@Override
public String visitATTR_OPER_CRITERIA(ScimFilterParser.ATTR_OPER_CRITERIAContext ctx) {
logger.info(" FidoDeviceFilterVisitor.visitATTR_OPER_CRITERIA() ");
ParseTree parent = ctx.getParent();
while (parent != null) {
if (parent.getClass().getSimpleName().equalsIgnoreCase(ScimFilterParser.LBRAC_EXPR_RBRACContext.class.getSimpleName())) {
logger.info("********** PARENT = " + parent.getClass().getSimpleName());
String attrName = ((ScimFilterParser.LBRAC_EXPR_RBRACContext)parent).ATTRNAME() + "." + ctx.ATTRNAME().getText();
return attrOperCriteriaResolver(attrName, visit(ctx.operator()), visit(ctx.criteria()));
} else {
parent = parent.getParent();
}
}
return attrOperCriteriaResolver(ctx.ATTRNAME().getText(), visit(ctx.operator()), visit(ctx.criteria()));
}
UserAgentTreeFlattener.java 文件源码
项目:yauaa
阅读 23
收藏 0
点赞 0
评论 0
private String inform(ParseTree stateCtx, ParseTree ctx, String name, String value, boolean fakeChild) {
State myState = new State(stateCtx, name);
if (!fakeChild) {
state.put(stateCtx, myState);
}
PathType childType;
switch (name) {
case "comments":
childType = PathType.COMMENT;
break;
case "version":
childType = PathType.VERSION;
break;
default:
childType = PathType.CHILD;
}
String path = myState.calculatePath(childType, fakeChild);
analyzer.inform(path, value, ctx);
return path;
}
ProgramParser.java 文件源码
项目:yql-plus
阅读 20
收藏 0
点赞 0
评论 0
private OperatorNode<SequenceOperator> convertQuery(ParseTree node, Scope scope) {
if (node instanceof Select_statementContext
|| node instanceof Insert_statementContext
|| node instanceof Update_statementContext
|| node instanceof Delete_statementContext) {
return convertSelectOrInsertOrUpdateOrDelete(node, scope.getRoot());
} else if (node instanceof Source_statementContext) { //for pipe
Source_statementContext sourceStatementContext = (Source_statementContext) node;
return convertPipe(sourceStatementContext.query_statement(), sourceStatementContext.pipeline_step(), scope);
} else if (node instanceof Merge_statementContext) {
return convertMerge(((Merge_statementContext) node).merge_component(), scope);
} else if (node instanceof Execute_statementContext) {
return convertExecute((Execute_statementContext) node, scope);
} else {
throw new IllegalArgumentException("Unexpected argument type to convertQueryStatement: " + node.toStringTree());
}
}
GoalOccurrences.java 文件源码
项目:exterminator
阅读 18
收藏 0
点赞 0
评论 0
public GoalOccurrences(CoqFTParser parser, CoqParser.Goal_occurrencesContext ctx) {
super(parser, ctx);
this.idents = new ArrayList<>();
this.atOccurrences = new HashMap<>();
for(int i = 0; i < ctx.getChildCount(); i++) {
ParseTree child = ctx.getChild(i);
if(child instanceof CoqParser.IdentContext) {
idents.add(new Ident(parser, (CoqParser.IdentContext)child));
} else if(child instanceof CoqParser.At_occurrencesContext && child != ctx.selectOccurrences) {
Occurrences o = new Occurrences(parser, ((CoqParser.At_occurrencesContext)child).occurrences());
atOccurrences.put(idents.get(idents.size() - 1), o);
}
}
this.isStar = ctx.star != null;
this.hasSelect = ctx.TOK_SELECT() != null;
this.hasSelectStar = ctx.selectStar != null;
if(ctx.selectOccurrences != null) {
this.selectAtOccurrences = new Occurrences(parser, ctx.selectOccurrences.occurrences());
} else {
this.selectAtOccurrences = null;
}
}
LambdaInterpreterGUI.java 文件源码
项目:Lambda-Interpreter
阅读 22
收藏 0
点赞 0
评论 0
/**
* Quand un terme sauvegardé dans la liste des termes sauvegardés est séléectionné il est possible
* de voir son AST via le menu, ou le raccourci Ctrl+I / Cmd+I
*
* @param evt L'event qui a trigger l'action.
*/
private void menuViewASTActionPerformed(java.awt.event.ActionEvent evt) {
if (!termSavedList.isSelectionEmpty()) {
int index = termSavedList.getSelectedIndex();
String term = saveTermModel.getElementAt(index);
try {
ANTLRInputStream inputStream = new ANTLRInputStream(term);
LambdaLexer lexer = new LambdaLexer(inputStream);
CommonTokenStream tokens = new CommonTokenStream(lexer);
LambdaParser parser = new LambdaParser(tokens);
ParseTree tree = parse(term);
TreeViewer viewer = new TreeViewer(Arrays.asList(parser.getRuleNames()), tree);
viewer.open();
} catch (ParseCancellationException e) {
workSpace.append("Don't try to watch AST of illformed term please");
}
}
}
JavadocDetailNodeParser.java 文件源码
项目:checkstyle-backport-jre6
阅读 27
收藏 0
点赞 0
评论 0
/**
* Creates JavadocNodeImpl node on base of ParseTree node.
*
* @param parseTree ParseTree node
* @param parent DetailNode that will be parent of new node
* @param index child index that has new node
* @return JavadocNodeImpl node on base of ParseTree node.
*/
private JavadocNodeImpl createJavadocNode(ParseTree parseTree, DetailNode parent, int index) {
final JavadocNodeImpl node = new JavadocNodeImpl();
if (parseTree.getChildCount() == 0
|| "Text".equals(getNodeClassNameWithoutContext(parseTree))) {
node.setText(parseTree.getText());
}
else {
node.setText(getFormattedNodeClassNameWithoutContext(parseTree));
}
node.setColumnNumber(getColumn(parseTree));
node.setLineNumber(getLine(parseTree) + blockCommentLineNumber);
node.setIndex(index);
node.setType(getTokenType(parseTree));
node.setParent(parent);
node.setChildren((DetailNode[]) new JavadocNodeImpl[parseTree.getChildCount()]);
return node;
}
GroupFilterVisitor.java 文件源码
项目:gluu
阅读 17
收藏 0
点赞 0
评论 0
/**
* {@inheritDoc}
* <p>
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*
* @param ctx
*/
@Override
public String visitATTR_OPER_EXPR(ScimFilterParser.ATTR_OPER_EXPRContext ctx) {
logger.info(" GroupFilterVisitor.visitATTR_OPER_EXPR() ");
ParseTree parent = ctx.getParent();
while (parent != null) {
if (parent.getClass().getSimpleName().equalsIgnoreCase(ScimFilterParser.LBRAC_EXPR_RBRACContext.class.getSimpleName())) {
logger.info("********** PARENT = " + parent.getClass().getSimpleName());
String attrName = ((ScimFilterParser.LBRAC_EXPR_RBRACContext)parent).ATTRNAME() + "." + ctx.ATTRNAME().getText();
return attrOperCriteriaResolver(attrName, visit(ctx.operator()), visit(ctx.expression()));
} else {
parent = parent.getParent();
}
}
return attrOperCriteriaResolver(ctx.ATTRNAME().getText(), visit(ctx.operator()), visit(ctx.expression()));
}
JavadocDetailNodeParser.java 文件源码
项目:checkstyle-backport-jre6
阅读 24
收藏 0
点赞 0
评论 0
/**
* Gets token type of ParseTree node from JavadocTokenTypes class.
* @param node ParseTree node.
* @return token type from JavadocTokenTypes
*/
private static int getTokenType(ParseTree node) {
final int tokenType;
if (node.getChildCount() == 0) {
tokenType = ((TerminalNode) node).getSymbol().getType();
}
else {
final String className = getNodeClassNameWithoutContext(node);
final String typeName =
CaseFormat.UPPER_CAMEL.to(CaseFormat.UPPER_UNDERSCORE, className);
tokenType = JavadocUtils.getTokenId(typeName);
}
return tokenType;
}
ProgramParser.java 文件源码
项目:yql-plus
阅读 20
收藏 0
点赞 0
评论 0
private OperatorNode<ExpressionOperator> readValues(List<Field_defContext> fieldDefs, Scope scope) {
List<String> fieldNames;
List<OperatorNode<ExpressionOperator>> fieldValues;
int numPairs = fieldDefs.size();
fieldNames = Lists.newArrayListWithExpectedSize(numPairs);
fieldValues = Lists.newArrayListWithExpectedSize(numPairs);
for (int j = 0; j < numPairs; j++) {
ParseTree startNode = fieldDefs.get(j);
while (startNode.getChildCount() < 3) {
startNode = startNode.getChild(0);
}
fieldNames.add((String) convertExpr(startNode.getChild(0), scope).getArgument(1));
fieldValues.add(convertExpr(startNode.getChild(2), scope));
}
return OperatorNode.create(ExpressionOperator.MAP, fieldNames, fieldValues);
}
Simulator.java 文件源码
项目:TSS
阅读 25
收藏 0
点赞 0
评论 0
private static CommandResult executeCommand(String command, Transputer[] transputers, PrintWriter output, PrintWriter errOutput) {
DebuggerCommandLexer commandLexer = new DebuggerCommandLexer(new ANTLRInputStream(command));
commandLexer.removeErrorListener(ConsoleErrorListener.INSTANCE);
CommonTokenStream tokenStream = new CommonTokenStream(commandLexer);
ErrorListener errorListener = new ErrorListener();
DebuggerCommandParser commandParser = new DebuggerCommandParser(tokenStream);
commandParser.addErrorListener(errorListener);
commandParser.removeErrorListener(ConsoleErrorListener.INSTANCE);
ParseTree commandTree = commandParser.command();
if (errorListener.errors != 0) {
output.println("Command not recognised.");
output.flush();
return CommandResult.NOT_RECOGNISED;
}
CommandExecutor executor = new CommandExecutor(transputers, output, errOutput);
return executor.visit(commandTree);
}
AppImpala.java 文件源码
项目:TriAL-QL-Engine
阅读 21
收藏 0
点赞 0
评论 0
/**
* Special case: STORE operator.
*
* @param queryArray
* @param i
* @param file
* @return
* @throws Exception
*/
public static ResultSet storeOperator(String[] queryArray, int i, boolean file) throws Exception {
ParseTree tree = TriALQLParseQuery.parse(queryArray[i] + ";", file);
TriALQLClassListener extractor = new TriALQLClassListener();
ParseTreeWalker.DEFAULT.walk(extractor, tree);
theLastQuery = true;
if (QueryStruct.oldTableName.get(i).equals(QueryStruct.newTableName.get(i))) {
// results = ImpalaDaemon.main(QueryStruct.baseQuery.get(i - 1));
notToDrop = QueryStruct.newTableName.get(i);
} else {
parseTree = false;
queryExecutor(queryArray[i] + ";", file, theLastQuery, parseTree);
results = ImpalaDaemon.main(QueryStruct.baseQuery.get(i));
}
return results;
}
Interpreter.java 文件源码
项目:Reo
阅读 25
收藏 0
点赞 0
评论 0
/**
* Parses a source file using ANTLR4, and walks over the parse tree to
* interpret this source file as a Java object.
*
* @param c
* input character stream
* @param path
* location of the file
* @return an interpreted source file, or null in case of an error.
*/
@Nullable
private ReoFile<T> parse(CharStream c, String path) {
ReoLexer lexer = new ReoLexer(c);
CommonTokenStream tokens = new CommonTokenStream(lexer);
ReoParser parser = new ReoParser(tokens);
ErrorListener errListener = new ErrorListener(m);
parser.removeErrorListeners();
parser.addErrorListener(errListener);
ParseTree tree = parser.file();
if (errListener.hasError)
return null;
ParseTreeWalker walker = new ParseTreeWalker();
listener.setFileName(path);
walker.walk(listener, tree);
return listener.getMain();
}
AstBuilder.java 文件源码
项目:kalang
阅读 22
收藏 0
点赞 0
评论 0
@Override
public Object visit(ParseTree tree) {
if (tree == null) {
System.err.print("visit null");
Exception ex = new Exception();
ex.printStackTrace(System.err);
return null;
}
if(tree instanceof StatContext && returned){
diagnosisReporter.report(Diagnosis.Kind.ERROR
,"unreachable statement"
, (StatContext) tree
);
}
return super.visit(tree);
}
CompilantUnitTest.java 文件源码
项目:kalang
阅读 19
收藏 0
点赞 0
评论 0
@Test
public void test(){
KalangSource source = new KalangSource("Test", "class{"
+ "void main(){"
+ "}"
+ "}","Test.kl");
CompilationUnit cu = new CompilationUnit(source,new DefaultCompileContext());
cu.compile(CompilePhase.PHASE_PARSING);
AstBuilder astBuilder = cu.getAstBuilder();
ParseTreeNavigator treeNav = new ParseTreeNavigator(astBuilder.getParseTree());
ParseTree tree = treeNav.getParseTree(0);
assertNotNull(tree);
ParseTree treeMd = treeNav.getParseTree(2);
ParseTree treeMdEnd = treeNav.getParseTree(7);
//System.out.println(treeMd);
//System.out.println(treeMdEnd);
assertNotNull(treeMd);
assertNotNull(treeMdEnd);
//assertEquals(treeMd, treeMdEnd.getParent().getParent());
// AstNode ast = sp.getAstNode(tree);
// assertNotNull(ast);
// System.out.println("ast:"+ast);
// RuleContext treeOfAst = sp.getParseTree(ast);
// assertNotNull(treeOfAst);
}
InstructionGenerator.java 文件源码
项目:antsdb
阅读 20
收藏 0
点赞 0
评论 0
@SuppressWarnings("unchecked")
static public Generator<ParseTree> getGenerator(ParseTree ctx) throws OrcaException {
Class<?> klass = ctx.getClass();
Generator<ParseTree> generator = _generatorByName.get(klass);
if (generator == null) {
String key = StringUtils.removeStart(klass.getSimpleName(), "MysqlParser$");
key = StringUtils.removeEnd(key, "Context");
key += "Generator";
try {
key = InstructionGenerator.class.getPackage().getName() + "." + key;
Class<?> generatorClass = Class.forName(key);
generator = (Generator<ParseTree>)generatorClass.newInstance();
_generatorByName.put(klass, generator);
}
catch (Exception x) {
throw new OrcaException("instruction geneartor is not found: " + key, x);
}
}
return generator;
}