Ejemplo n.º 1
0
        static KeywordManager()
        {
            Default = new KeywordManager();

            Default.RegisterKeyword("package", TokenType.PackageKeyword, KeywordCategory.Other);
            Default.RegisterKeyword("using", TokenType.UsingKeyword, KeywordCategory.Other);
            Default.RegisterKeyword("struct", TokenType.StructKeyword, KeywordCategory.Other);
            Default.RegisterKeyword("about", TokenType.AboutKeyword, KeywordCategory.Other);
            Default.RegisterKeyword("var", TokenType.VarKeyword, KeywordCategory.Other);
            Default.RegisterKeyword("obsolete", TokenType.ObsoleteKeyword, KeywordCategory.Other);

            Default.RegisterKeyword("public", TokenType.PublicKeyword, KeywordCategory.StructModifier);
            Default.RegisterKeyword("internal", TokenType.InternalKeyword, KeywordCategory.StructModifier);
            Default.RegisterKeyword("private", TokenType.PrivateKeyword, KeywordCategory.StructModifier);
            Default.RegisterKeyword("protected", TokenType.ProtectedKeyword, KeywordCategory.StructModifier);
            Default.RegisterKeyword("final", TokenType.FinalKeyword, KeywordCategory.StructModifier);
            Default.RegisterKeyword("ref", TokenType.RefKeyword, KeywordCategory.StructModifier);

            Default.RegisterKeyword("boolean", TokenType.BooleanKeyword, KeywordCategory.TypeKeyword);
            Default.RegisterKeyword("uint8", TokenType.UInt8Keyword, KeywordCategory.TypeKeyword);
            Default.RegisterKeyword("int8", TokenType.Int8Keyword, KeywordCategory.TypeKeyword);
            Default.RegisterKeyword("uint16", TokenType.UInt16Keyword, KeywordCategory.TypeKeyword);
            Default.RegisterKeyword("int16", TokenType.Int16Keyword, KeywordCategory.TypeKeyword);
            Default.RegisterKeyword("uint32", TokenType.UInt32Keyword, KeywordCategory.TypeKeyword);
            Default.RegisterKeyword("int32", TokenType.Int32Keyword, KeywordCategory.TypeKeyword);
            Default.RegisterKeyword("uint64", TokenType.UInt64Keyword, KeywordCategory.TypeKeyword);
            Default.RegisterKeyword("int64", TokenType.Int64Keyword, KeywordCategory.TypeKeyword);
            Default.RegisterKeyword("float32", TokenType.Float32Keyoword, KeywordCategory.TypeKeyword);
            Default.RegisterKeyword("float64", TokenType.Float64Keyword, KeywordCategory.TypeKeyword);
            Default.RegisterKeyword("float128", TokenType.Float128Keyword, KeywordCategory.TypeKeyword);
            Default.RegisterKeyword("char", TokenType.CharKeyword, KeywordCategory.TypeKeyword);
            Default.RegisterKeyword("string", TokenType.StringKeyword, KeywordCategory.TypeKeyword);
            Default.RegisterKeyword("nuint", TokenType.NUIntKeyword, KeywordCategory.TypeKeyword);
            Default.RegisterKeyword("nint", TokenType.NIntKeyword, KeywordCategory.TypeKeyword);
            Default.RegisterKeyword("vuint", TokenType.VUIntKeyword, KeywordCategory.TypeKeyword);
            Default.RegisterKeyword("vint", TokenType.VIntKeyword, KeywordCategory.TypeKeyword);
        }
Ejemplo n.º 2
0
 /// <summary>
 /// 初始化Compiler
 /// </summary>
 /// <param name="errorWriter"></param>
 /// <param name="keywordManager"></param>
 public Compiler(ErrorWriter errorWriter, KeywordManager keywordManager)
 {
     m_ErrorWriter    = errorWriter ?? throw new ArgumentNullException(nameof(errorWriter));
     m_KeywordManager = keywordManager ?? throw new ArgumentNullException(nameof(keywordManager));
     m_SyncObj        = new object();
 }
Ejemplo n.º 3
0
 /// <summary>
 /// 初始化Scanner
 /// </summary>
 /// <param name="writer">错误编写器</param>
 /// <param name="manager">关键字管理器</param>
 public Scanner(ErrorWriter writer, KeywordManager manager)
 {
     m_KeywordManager = manager;
     m_Writer         = writer;
     m_StrBuilder     = new StringBuilder();
 }
Ejemplo n.º 4
0
 /// <summary>
 /// 初始化 Parser
 /// </summary>
 /// <param name="writer">错误编写器</param>
 /// <param name="keywordManager">关键字管理器</param>
 public Parser(ErrorWriter writer, KeywordManager keywordManager)
 {
     m_KeywordManager = keywordManager;
     m_Writer         = writer;
 }