public static UnifiedProgram CreateProgram(ProduireFile rdr) { var program = UnifiedProgram.Create(UnifiedBlock.Create()); ParseClass(rdr.Global, program.Body); foreach (var construct in rdr.GetConstructs()) { program.Body.Add(CreateClassDefinition(construct)); } return(program); }
public UnifiedProgram Generate(string code) { if (string.IsNullOrWhiteSpace(code)) { return(UnifiedProgram.Create(UnifiedBlock.Create())); } var model = GenerateWithoutNormalizing(code); model.Normalize(); return(model); }
public UnifiedElement VisitSyntaxTree(SyntaxTree syntaxTree, object data) { var prog = UnifiedProgram.Create(UnifiedBlock.Create()); foreach (var child in syntaxTree.Children) { var elem = child.TryAcceptForExpression(this); if (elem != null) { prog.Body.Add(elem); } } return(prog); }
public static UnifiedProgram CreateTranslationUnit(XElement node) { Contract.Requires(node != null); Contract.Requires(node.Name() == "translation_unit"); /* * translation_unit: external_declaration+ ; */ var program = UnifiedProgram.Create(UnifiedBlock.Create()); var expressions = program.Body; foreach (var e in node.Elements("external_declaration")) { expressions.Add(CreateExternalDeclaration(e)); } return(program); }
public static UnifiedProgram CreateProgram(XElement node) { Contract.Requires(node != null); return(UnifiedProgram.Create(CreateSmartBlock(node))); }