Sha256: ada73bb6b249c903db56de86a27711f88f5d7337b5ac4a8e5a4a762ee967c668
Contents?: true
Size: 1.18 KB
Versions: 1
Compression:
Stored size: 1.18 KB
Contents
package org.embulk.filter.calc; import org.antlr.v4.runtime.ANTLRInputStream; import org.antlr.v4.runtime.CommonTokenStream; import org.antlr.v4.runtime.tree.ParseTree; import org.embulk.spi.Schema; public class CalcConfigChecker { private String name; private String formula; private Schema inputSchema; public CalcConfigChecker(String name, String formula, Schema inputSchema) { this.formula = formula; this.name = name; this.inputSchema = inputSchema; } public Boolean validateFormula() { inputSchema.lookupColumn(name); // throw Exception ANTLRInputStream input = new ANTLRInputStream(this.formula); CalculatorLexer lexer = new CalculatorLexer(input); CommonTokenStream tokens = new CommonTokenStream(lexer); CalculatorParser parser = new CalculatorParser(tokens); ConfigErrorListener errorListener = new ConfigErrorListener(name); parser.removeErrorListeners(); parser.addErrorListener(errorListener); ParseTree tree = parser.expr(); CalcConfigCheckVisitor eval = new CalcConfigCheckVisitor(inputSchema); eval.visit(tree); return true; } }
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
embulk-filter-calc-0.1.0 | src/main/java/org/embulk/filter/calc/CalcConfigChecker.java |