private static void defineVariables(Map<String, Type> inputVariableTypes, Map<String, Object> inputVariables, FEEL_1_1Parser parser) {
inputVariableTypes.forEach( (name, type) -> {
parser.getHelper().defineVariable( name, type );
if (type.getName() != null) {
parser.getHelper().getSymbolTable().getGlobalScope().define(new BuiltInTypeSymbol(type.getName(), type));
}
} );
inputVariables.forEach( (name, value) -> {
parser.getHelper().defineVariable( name );
if( value instanceof Map ) {
try {
parser.getHelper().pushName( name );
parser.getHelper().pushScope();
defineVariables( Collections.EMPTY_MAP, (Map<String, Object>) value, parser );
} finally {
parser.getHelper().popScope();
parser.getHelper().popName();
}
}
} );
}