Exemple #1
0
        ////////////////////////////////////////////////////////////////////////////////
        // 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);
        }
Exemple #2
0
        public GlobalSymbolContext(NameManager namemgr)
        {
            TypeManager = new TypeManager();
            GlobalSymbols = new BSYMMGR(namemgr, TypeManager);
            _predefTypes = new PredefinedTypes(GlobalSymbols);
            TypeManager.Init(GlobalSymbols, _predefTypes);
            GlobalSymbols.Init();

            _nameManager = namemgr;
        }
Exemple #3
0
 public SymbolLoader(
     GlobalSymbolContext globalSymbols,
     UserStringBuilder userStringBuilder,
     ErrorHandling errorContext
 )
 {
     _nameManager = globalSymbols.GetNameManager();
     PredefinedMembers = new PredefinedMembers(this);
     ErrorContext = errorContext;
     GlobalSymbolContext = globalSymbols;
     Debug.Assert(GlobalSymbolContext != null);
 }
Exemple #4
0
        /////////////////////////////////////////////////////////////////////////////////

        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();
        }
Exemple #5
0
        /////////////////////////////////////////////////////////////////////////////////

        internal static Name GetName(string p, NameManager nameManager)
        {
            Name name = nameManager.Lookup(p);
            if (name == null)
            {
                return nameManager.Add(p);
            }
            return name;
        }
Exemple #6
0
 public SymFactory(
     SYMTBL symtable,
     NameManager namemgr) :
     base(symtable, namemgr)
 {
 }
Exemple #7
0
 public static Name GetMethodName(NameManager namemgr, OperatorKind op)
 {
     Debug.Assert(HasMethodName(op));
     return namemgr.GetPredefName(GetMethodName(op));
 }
Exemple #8
0
        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);
            }
        }