Changes in src/Parser/ParseNode.h [6a0d4d61:dd020c0]
- File:
-
- 1 edited
-
src/Parser/ParseNode.h (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/Parser/ParseNode.h
r6a0d4d61 rdd020c0 10 10 // Created On : Sat May 16 13:28:16 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Feb 23 15:22:10201713 // Update Count : 66212 // Last Modified On : Fri Mar 3 21:34:27 2017 13 // Update Count : 704 14 14 // 15 15 … … 19 19 #include <string> 20 20 #include <list> 21 #include <bitset> 21 22 #include <iterator> 22 23 #include <memory> … … 203 204 // These must remain in the same order as the corresponding DeclarationNode names. 204 205 205 // enum StorageClass { Extern, Static, Auto, Register, NoStorageClass }; 206 // enum FunctionSpec { Inline, Fortran, Noreturn, NoFunctionSpec }; 207 // enum Qualifier { Const, Restrict, Volatile, Lvalue, Atomic, Threadlocal, Mutex, NoQualifier }; 208 209 enum StorageClass { Extern, Static, Auto, Register, Inline, Fortran, Noreturn, Threadlocal, NoStorageClass, }; 210 enum Qualifier { Const, Restrict, Volatile, Lvalue, Atomic, NoQualifier }; 206 enum StorageClass { Extern, Static, Auto, Register, Threadlocal, NoStorageClass }; 207 enum FuncSpecifier { Inline, Noreturn, Fortran, NoFuncSpecifier, 208 InlineSpec = 1 << Inline, NoreturnSpec = 1 << Noreturn, FortranSpec = 1 << Fortran }; 209 enum TypeQualifier { Const, Restrict, Volatile, Lvalue, Atomic, NoTypeQualifier }; 211 210 enum BasicType { Void, Bool, Char, Int, Float, Double, LongDouble, NoBasicType }; 212 211 enum ComplexType { Complex, Imaginary, NoComplexType }; … … 217 216 enum BuiltinType { Valist, Zero, One, NoBuiltinType }; 218 217 219 static const char * storageName[]; 220 static const char * qualifierName[]; 221 static const char * basicTypeName[]; 222 static const char * complexTypeName[]; 223 static const char * signednessName[]; 224 static const char * lengthName[]; 225 static const char * aggregateName[]; 226 static const char * typeClassName[]; 227 static const char * builtinTypeName[]; 228 229 static DeclarationNode * newFunction( std::string * name, DeclarationNode * ret, DeclarationNode * param, StatementNode * body, bool newStyle = false ); 230 static DeclarationNode * newQualifier( Qualifier ); 231 static DeclarationNode * newForall( DeclarationNode * ); 218 static const char * storageClassNames[]; 219 static const char * funcSpecifierNames[]; 220 static const char * typeQualifierNames[]; 221 static const char * basicTypeNames[]; 222 static const char * complexTypeNames[]; 223 static const char * signednessNames[]; 224 static const char * lengthNames[]; 225 static const char * aggregateNames[]; 226 static const char * typeClassNames[]; 227 static const char * builtinTypeNames[]; 228 232 229 static DeclarationNode * newStorageClass( StorageClass ); 230 static DeclarationNode * newFuncSpecifier( FuncSpecifier ); 231 static DeclarationNode * newTypeQualifier( TypeQualifier ); 233 232 static DeclarationNode * newBasicType( BasicType ); 234 233 static DeclarationNode * newComplexType( ComplexType ); 235 static DeclarationNode * newSignedNess( Signedness sn);236 static DeclarationNode * newLength( Length lnth);234 static DeclarationNode * newSignedNess( Signedness ); 235 static DeclarationNode * newLength( Length ); 237 236 static DeclarationNode * newBuiltinType( BuiltinType ); 237 static DeclarationNode * newForall( DeclarationNode * ); 238 238 static DeclarationNode * newFromTypedef( std::string * ); 239 static DeclarationNode * newFunction( std::string * name, DeclarationNode * ret, DeclarationNode * param, StatementNode * body, bool newStyle = false ); 239 240 static DeclarationNode * newAggregate( Aggregate kind, const std::string * name, ExpressionNode * actuals, DeclarationNode * fields, bool body ); 240 241 static DeclarationNode * newEnum( std::string * name, DeclarationNode * constants, bool body ); … … 324 325 TypeData * type; 325 326 StorageClass storageClass; 327 328 typedef std::bitset< DeclarationNode::NoFuncSpecifier > FuncSpec; 329 FuncSpec funcSpec; 330 static void print_FuncSpec( std::ostream & output, FuncSpec funcSpec ); 331 326 332 ExpressionNode * bitfieldWidth; 327 bool isInline, isNoreturn;328 333 std::unique_ptr<ExpressionNode> enumeratorValue; 329 334 bool hasEllipsis;
Note:
See TracChangeset
for help on using the changeset viewer.