/** * Parses the text to create a {@link Definition} object. */ public static org.kframework.definition.Definition from(String definitionText, String mainModuleName, Source source) { return from(definitionText, mainModuleName, source, Lists.newArrayList(Kompile.BUILTIN_DIRECTORY)); }
/** * Parses the text to create a {@link Definition} object. */ public static org.kframework.definition.Definition from(String definitionText, String mainModuleName) { return from(definitionText, mainModuleName, Source.apply("generated")); }
/** * Parses the text to create a {@link Definition} object. * The main module of the definition will be last module defined in the text file. */ public static org.kframework.definition.Definition from(String definitionText) { Pattern pattern = Pattern.compile("(?:^|\\s)module ([A-Z][A-Z\\-]*)"); Matcher m = pattern.matcher(definitionText); if(!m.find()) { throw new RuntimeException("Could not find any module in the definition"); } String nameOfLastModule = m.group(m.groupCount()); return from(definitionText, nameOfLastModule, Source.apply("generated")); }
@Test public void testFrom() throws Exception { org.kframework.definition.Definition actual = Definition.from("module X endmodule"); Module modSyntax = Module.apply("X$SYNTAX", Set()); Module mod = new Module("X", Set(modSyntax), Set(), Att()); assertEquals(org.kframework.definition.Definition.apply(mod, Set(mod, modSyntax), Att()), actual); } }