Exemple #1
0
 public DeclarationUnit(
     SyntaxToken ident,
     TypeSpecifierSyntax typeSpecifier)
     : base(ident)
 {
     TypeSpecifier = typeSpecifier;
 }
Exemple #2
0
        // [4] TypeSpecifier = 'void' | 'char' | 'bool' | 'short' | 'int' | 'long' | 'double' | 'signed' | 'unsigned' |
        // StructOrUnionSpecifier | EnumSpecifier
        private bool IsTypeSpecifier(out TypeSpecifierSyntax typeSpecifier)
        {
            typeSpecifier = new TypeSpecifierSyntax();

            if (IsStructOrUnionSpecifier(out var structOrUnionSpecifier))
            {
                //typeSpecifier.Keyword =
                //   new KeywordToken(structOrUnionSpecifier.Ident.Line, structOrUnionSpecifier.Ident.Column, structOrUnionSpecifier.Ident.Value);
                typeSpecifier.AddChild(structOrUnionSpecifier);
                // userDefinedType guaranteed not to be null
                return(true);
            }
            else if (IsEnumSpecifier(out var enumSpecifier))
            {
                typeSpecifier.Keyword = enumSpecifier.Keyword;

                return(true);
            }
            else if (token.Kind == SyntaxKind.KeywordToken)
            {
                typeSpecifier.Keyword = token;

                // predefined type
                // scope.Add(new PredefinedTypeUnit(keywordToken));
                ReadNextToken();
                return(true);
            }

            return(false);
        }
Exemple #3
0
 public DeclarationSpecifierSyntax(
     SyntaxToken keyword,
     TypeSpecifierSyntax typeSpecifier)
     : base(SyntaxKind.DeclarationSpecifierSyntax)
 {
     Keyword       = keyword;
     TypeSpecifier = typeSpecifier;
 }