//////////////////////////////////////////////////////////////////////////////// // Construct a compiler. All the real work is done in the Init() routine. This // primary initializes all the sub-components. public LangCompiler(CController pCtrl, NameManager pNameMgr) { Debug.Assert(pCtrl != null); _pController = pCtrl; GlobalSymbolContext globalSymbolContext = new GlobalSymbolContext(pNameMgr); _errorContext = new ErrorHandling(new UserStringBuilder(globalSymbolContext), this, pCtrl.GetErrorFactory()); _symbolLoader = new SymbolLoader(globalSymbolContext, null, _errorContext); }
public GlobalSymbolContext(NameManager namemgr) { TypeManager = new TypeManager(); GlobalSymbols = new BSYMMGR(namemgr, TypeManager); _predefTypes = new PredefinedTypes(GlobalSymbols); TypeManager.Init(GlobalSymbols, _predefTypes); GlobalSymbols.Init(); _nameManager = namemgr; }
public SymbolLoader( GlobalSymbolContext globalSymbols, UserStringBuilder userStringBuilder, ErrorHandling errorContext ) { _nameManager = globalSymbols.GetNameManager(); PredefinedMembers = new PredefinedMembers(this); ErrorContext = errorContext; GlobalSymbolContext = globalSymbols; Debug.Assert(GlobalSymbolContext != null); }
///////////////////////////////////////////////////////////////////////////////// internal SymbolTable( SYMTBL symTable, SymFactory symFactory, NameManager nameManager, TypeManager typeManager, BSYMMGR bsymmgr, CSemanticChecker semanticChecker, InputFile infile) { _symbolTable = symTable; _symFactory = symFactory; _nameManager = nameManager; _typeManager = typeManager; _bsymmgr = bsymmgr; _semanticChecker = semanticChecker; _infile = infile; ClearCache(); }
///////////////////////////////////////////////////////////////////////////////// internal static Name GetName(string p, NameManager nameManager) { Name name = nameManager.Lookup(p); if (name == null) { return nameManager.Add(p); } return name; }
public SymFactory( SYMTBL symtable, NameManager namemgr) : base(symtable, namemgr) { }
public static Name GetMethodName(NameManager namemgr, OperatorKind op) { Debug.Assert(HasMethodName(op)); return namemgr.GetPredefName(GetMethodName(op)); }
public static OperatorKind OperatorOfMethodName(NameManager namemgr, Name name) { Debug.Assert(name != null); for (OperatorKind i = OperatorKind.OP_NONE; i < OperatorKind.OP_LAST; i = (i + 1)) { if (HasMethodName(i) && (name == GetMethodName(namemgr, i))) { return i; } } return OperatorKind.OP_NONE; }
// This class should never be created on its own. protected SymFactoryBase(SYMTBL symtable, NameManager namemgr) { m_pSymTable = symtable; if (namemgr != null) { m_pMissingNameNode = namemgr.GetPredefName(PredefinedName.PN_MISSING); m_pMissingNameSym = namemgr.GetPredefName(PredefinedName.PN_MISSINGSYM); } }