public void write_c_module(c_module _c_module) { write_compilation_unit(_c_module); if (_c_module.defs == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _c_module.defs.visit(this); } if (_c_module.used_units == null) { bw.Write((byte)0); } else { bw.Write((byte)1); _c_module.used_units.visit(this); } }
public override void visit(c_module _c_module) { throw new NotImplementedException(); }
public void visit(c_module _c_module) { bw.Write((Int16)161); write_c_module(_c_module); }
public override void visit(c_module _c_module) { //Assembly _as = System.Reflection.Assembly.LoadFrom(get_assembly_path("mscorlib.dll",_c_module.file_name)); System.Reflection.Assembly _as = System.Reflection.Assembly.LoadFrom(get_assembly_path("mscorlib.dll",_c_module.file_name)); PascalABCCompiler.NetHelper.NetHelper.init_namespaces(_as); //add_standart_types_simple(); //List<Scope> netScopes = new List<Scope>(); //PascalABCCompiler.NetHelper.NetScope ns=new PascalABCCompiler.NetHelper.NetScope(unl,_as,tcst); if (_c_module.compiler_directives != null) foreach (PascalABCCompiler.SyntaxTree.compiler_directive dir in _c_module.compiler_directives) { if (dir.Name.text == "reference") { try { //System.Reflection.Assembly assm = System.Reflection.Assembly.LoadFrom(get_assembly_path(dir.Directive.text,_c_module.file_name)); System.Reflection.Assembly assm = PascalABCCompiler.NetHelper.NetHelper.LoadAssembly(get_assembly_path(dir.Directive.text,_c_module.file_name)); PascalABCCompiler.NetHelper.NetHelper.init_namespaces(assm); } catch (Exception e) { } } } cur_scope = new InterfaceUnitScope(new SymInfo("", SymbolKind.Block,"module"),null); doc = new document(_c_module.file_name); cur_scope.loc = get_location(_c_module); entry_scope = cur_scope; add_system_unit(); if (_c_module.used_units != null) { (cur_scope as InterfaceUnitScope).uses_source_range = get_location(_c_module.used_units); foreach (unit_or_namespace s in _c_module.used_units.units) { try { string str = ""; for (int i = 0; i < s.name.idents.Count; i++) { str += s.name.idents[i].name; NamespaceScope ns_scope = null; if (i == 0) { if (PascalABCCompiler.NetHelper.NetHelper.IsNetNamespace(str)) { ns_scope = new NamespaceScope(str); cur_scope.AddName(str, ns_scope); if (s.name.idents.Count == 1) cur_scope.AddUsedUnit(ns_scope); } else { string unit_name = CodeCompletionController.comp.FindSourceFileName(str); if (unit_name == null) { unit_name = Path.Combine(System.IO.Path.GetDirectoryName(_c_module.file_name), str) + System.IO.Path.GetExtension(_c_module.file_name); if (!System.IO.File.Exists(unit_name)) unit_name = null; } if (unit_name != null) { DomConverter dc = CodeCompletionController.comp_modules[unit_name] as DomConverter; if (dc == null /*|| CodeCompletionController.recomp_files[unit_name] != null*/) { dc = new CodeCompletionController().CompileAllIfNeed(unit_name); } if (dc.stv != null) { cur_scope.AddUsedUnit(dc.stv.entry_scope); cur_scope.AddName(str, dc.stv.entry_scope); } } } } if (i < s.name.idents.Count - 1) str += "."; if (i == s.name.idents.Count - 1 && i > 0) cur_scope.AddUsedUnit(new NamespaceScope(str)); } unl.AddElement(new PascalABCCompiler.TreeRealization.using_namespace(str)); } catch (Exception e) { } } } //PascalABCCompiler.TreeRealization.common_type_node ctn = new ; if (_c_module.defs != null) foreach (declaration decl in _c_module.defs.defs) { decl.visit(this); } }
public void read_c_module(c_module _c_module) { read_compilation_unit(_c_module); _c_module.defs = _read_node() as declarations; _c_module.used_units = _read_node() as uses_list; }
public void visit(c_module _c_module) { read_c_module(_c_module); }
public override void visit(c_module node) { prepare_node(node.defs, "defs"); }
public override void visit(c_module node) { //text = "LanguageId:" + node.Language.ToString(); }