Changeset 6165ce7 for src/Parser/ExpressionNode.cc
- Timestamp:
- Jul 27, 2017, 12:37:31 PM (7 years ago)
- Branches:
- ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, deferred_resn, demangler, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, with_gc
- Children:
- a04ce4d
- Parents:
- 7bd1bb5
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/Parser/ExpressionNode.cc
r7bd1bb5 r6165ce7 9 9 // Author : Rodolfo G. Esteves 10 10 // Created On : Sat May 16 13:17:07 2015 11 // Last Modified By : Andrew Beach12 // Last Modified On : T us Jul 25 10:11:00 201713 // Update Count : 55 111 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Jul 27 12:10:10 2017 13 // Update Count : 556 14 14 // 15 15 … … 62 62 bool dec = true, Unsigned = false; // decimal, unsigned constant 63 63 int size; // 0 => int, 1 => long, 2 => long long 64 unsigned long long int v; 64 unsigned long long int v; // converted integral value 65 65 size_t last = str.length() - 1; // last character of constant 66 66 Expression * ret; 67 68 // special constants 69 if ( str == "0" ) { 70 ret = new ConstantExpr( Constant( (Type *)new ZeroType( noQualifiers ), str, (unsigned long long int)0 ) ); 71 goto CLEANUP; 72 } // if 73 if ( str == "1" ) { 74 ret = new ConstantExpr( Constant( (Type *)new OneType( noQualifiers ), str, (unsigned long long int)1 ) ); 75 goto CLEANUP; 76 } // if 77 67 78 if ( str[0] == '0' ) { // octal/hex constant ? 68 79 dec = false; … … 118 129 } // if 119 130 120 Expression * ret = new ConstantExpr( Constant( new BasicType( noQualifiers, kind[Unsigned][size] ), str, v ) ); 131 ret = new ConstantExpr( Constant( new BasicType( noQualifiers, kind[Unsigned][size] ), str, v ) ); 132 CLEANUP: 121 133 delete &str; // created by lex 122 134 return ret; … … 174 186 return ret; 175 187 } // build_constantStr 176 177 Expression *build_constantZeroOne( const std::string & str ) {178 Expression * ret = new ConstantExpr( Constant( str == "0" ? (Type *)new ZeroType( noQualifiers ) : (Type*)new OneType( noQualifiers ), str,179 str == "0" ? (unsigned long long int)0 : (unsigned long long int)1 ) );180 delete &str; // created by lex181 return ret;182 } // build_constantChar183 188 184 189 Expression * build_field_name_FLOATINGconstant( const std::string & str ) {
Note: See TracChangeset
for help on using the changeset viewer.