use of io.github.wysohn.triggerreactor.core.script.warning.Warning in project TriggerReactor by wysohn.
the class AbstractTriggerManager method reportWarnings.
protected static void reportWarnings(List<Warning> warnings, Trigger trigger) {
if (warnings == null || warnings.isEmpty()) {
return;
}
Level L = Level.WARNING;
Logger log = TriggerReactorCore.getInstance().getLogger();
int numWarnings = warnings.size();
String ww;
if (numWarnings > 1) {
ww = "warnings were";
} else {
ww = "warning was";
}
log.log(L, "===== " + warnings.size() + " " + ww + " found while loading trigger " + trigger.getInfo() + " =====");
for (Warning w : warnings) {
for (String line : w.getMessageLines()) {
log.log(L, line);
}
log.log(Level.WARNING, "");
}
log.log(Level.WARNING, "");
}
use of io.github.wysohn.triggerreactor.core.script.warning.Warning in project TriggerReactor by wysohn.
the class Trigger method init.
/**
* @throws IOException low level exception from Lexer
* @throws LexerException throws if lexical analysis failed
* @throws ParserException throws if parsing failed
* @throws TriggerInitFailedException
*/
public void init() throws TriggerInitFailedException {
try {
if (script == null) {
throw new NullPointerException("init() was invoked, yet 'script' was null. Make sure to override " + "init() method to in order to construct a customized Trigger.");
}
Charset charset = StandardCharsets.UTF_8;
Lexer lexer = new Lexer(script, charset);
Parser parser = new Parser(lexer);
root = parser.parse(true);
List<Warning> warnings = parser.getWarnings();
AbstractTriggerManager.reportWarnings(warnings, this);
executorMap = TriggerReactorCore.getInstance().getExecutorManager().getBackedMap();
placeholderMap = TriggerReactorCore.getInstance().getPlaceholderManager().getBackedMap();
gvarMap = TriggerReactorCore.getInstance().getVariableManager().getGlobalVariableAdapter();
} catch (Exception ex) {
throw new TriggerInitFailedException("Failed to initialize Trigger [" + this.getClass().getSimpleName() + " -- " + info + "]!", ex);
}
}
use of io.github.wysohn.triggerreactor.core.script.warning.Warning in project TriggerReactor by wysohn.
the class Parser method parse.
public Node parse(boolean showWarnings) throws IOException, LexerException, ParserException {
this.showWarnings = showWarnings;
lexer.setWarnings(showWarnings);
Node root = new Node(new Token(Type.ROOT, "<ROOT>", -1, -1));
Node statement = null;
while ((statement = parseStatement()) != null) root.getChildren().add(statement);
List<Warning> lexWarnings = lexer.getWarnings();
if (lexWarnings != null) {
this.warnings.addAll(lexWarnings);
}
return root;
}
Aggregations