public static void main(String argv[]) { ConditionParser parser = new ConditionParser(); //List<String> defines = parser.extractDefines("(LightMap && SeparateTexCoord) || !ColorMap"); List<String> defines = parser.extractDefines("RoughnessMap && MetallicRoughnessMap"); for (String string : defines) { System.err.println(string); } System.err.println(parser.formattedExpression); defines = parser.extractDefines("#if (defined(LightMap) && defined(SeparateTexCoord)) || !defined(ColorMap)"); for (String string : defines) { System.err.println(string); } System.err.println(parser.formattedExpression); // System.err.println(parser.getFormattedExpression()); // // parser.parse("ShaderNode.var.xyz"); // parser.parse("var.xyz"); // parser.parse("ShaderNode.var"); // parser.parse("var"); }
List<String> params = parser.extractDefines(line.trim()); String l = line.trim().replaceAll("defined", "").replaceAll("#if ", "").replaceAll("#ifdef", "");//parser.getFormattedExpression(); boolean match = false;
/** * Extracts and checks a condition expression. * * @param condition the condition expression. * @param statement the statement being read. * @throws MatParseException if the condition isn't valid. */ public void extractCondition(String condition, Statement statement) throws MatParseException { List<String> defines = conditionParser.extractDefines(condition); for (String string : defines) { MatParam param = findMatParam(string); if (param != null) { addDefine(param.getName(), param.getVarType()); } else { throw new MatParseException("Invalid condition, condition must match a Material Parameter named " + condition, statement); } } }
public static void main(String argv[]) { ConditionParser parser = new ConditionParser(); List<String> defines = parser.extractDefines("(LightMap && SeparateTexCoord) || !ColorMap"); for (String string : defines) { System.err.println(string); } System.err.println(parser.formattedExpression); defines = parser.extractDefines("#if (defined(LightMap) && defined(SeparateTexCoord)) || !defined(ColorMap)"); for (String string : defines) { System.err.println(string); } System.err.println(parser.formattedExpression); // System.err.println(parser.getFormattedExpression()); // // parser.parse("ShaderNode.var.xyz"); // parser.parse("var.xyz"); // parser.parse("ShaderNode.var"); // parser.parse("var"); }
List<String> params = parser.extractDefines(line.trim()); String l = line.trim().replaceAll("defined", "").replaceAll("#if ", "").replaceAll("#ifdef", "");//parser.getFormattedExpression(); boolean match = false;
/** * extract and check a condition expression * * @param cond the condition expression * @param statement the statement being read * @throws IOException */ public void extractCondition(String cond, Statement statement) throws IOException { List<String> defines = conditionParser.extractDefines(cond); for (String string : defines) { MatParam param = findMatParam(string); if (param != null) { addDefine(param.getName(), param.getVarType()); } else { throw new MatParseException("Invalid condition, condition must match a Material Parameter named " + cond, statement); } } }