diff options
author | Markus Schorn | 2012-05-04 07:37:40 +0000 |
---|---|---|
committer | Markus Schorn | 2012-05-04 07:37:40 +0000 |
commit | b562fc5469193079a98eb002580d428a5c1a3d26 (patch) | |
tree | 9fb46f09affc36f11b2a38c87fe7e9ec670dcd6d /core/org.eclipse.cdt.core/parser/org/eclipse | |
parent | 9b66c608259141c0b36b549e77f376646d11d15d (diff) | |
download | org.eclipse.cdt-b562fc5469193079a98eb002580d428a5c1a3d26.tar.gz org.eclipse.cdt-b562fc5469193079a98eb002580d428a5c1a3d26.tar.xz org.eclipse.cdt-b562fc5469193079a98eb002580d428a5c1a3d26.zip |
Bug 327298: [C++11] Support for nullptr
Diffstat (limited to 'core/org.eclipse.cdt.core/parser/org/eclipse')
18 files changed, 76 insertions, 27 deletions
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/ast/ASTTypeUtil.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/ast/ASTTypeUtil.java index cd6693c48f6..6bceaa29dca 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/ast/ASTTypeUtil.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/ast/ASTTypeUtil.java @@ -336,6 +336,10 @@ public class ASTTypeUtil { if (needSpace) result.append(SPACE); result.append(Keywords.CHAR32_T); break; + case eNullPtr: + if (needSpace) result.append(SPACE); + result.append("std::nullptr_t"); //$NON-NLS-1$ + break; case eUnspecified: break; } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/ast/IASTLiteralExpression.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/ast/IASTLiteralExpression.java index 86e6b25e52b..1c4feacb55b 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/ast/IASTLiteralExpression.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/ast/IASTLiteralExpression.java @@ -64,6 +64,12 @@ public interface IASTLiteralExpression extends IASTExpression { public static final int lk_false = 6; /** + * <code>lk_nullptr</code> represents the 'nullptr' keyword. + * @since 5.4 + */ + public static final int lk_nullptr = 7; + + /** * Get the literal expression kind. */ public int getKind(); diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/ast/IBasicType.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/ast/IBasicType.java index 9bb65623131..2170c807cf1 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/ast/IBasicType.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/ast/IBasicType.java @@ -22,7 +22,8 @@ public interface IBasicType extends IType { * @since 5.2 */ enum Kind { - eUnspecified, eVoid, eChar, eWChar, eInt, eFloat, eDouble, eBoolean, eChar16, eChar32 + eUnspecified, eVoid, eChar, eWChar, eInt, eFloat, eDouble, eBoolean, eChar16, eChar32, + /** @since 5.4 */ eNullPtr } /** diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/IToken.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/IToken.java index c722ee6927c..e11ac4ca605 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/IToken.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/IToken.java @@ -141,6 +141,7 @@ public interface IToken { int t_mutable = 90; int t_namespace = 91; int t_new = 92; + /** @since 5.4 */ int t_nullptr = 5400; /** @deprecated use {@link #tNOT} */ @Deprecated int t_not = 93; /** @deprecated use {@link #tNOTEQUAL} */ @Deprecated int t_not_eq = 94; int t_operator = 95; diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/Keywords.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/Keywords.java index 523b7f64c69..2a3c2f16ee1 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/Keywords.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/Keywords.java @@ -72,6 +72,8 @@ public class Keywords { public static final String LONG_LONG = "long long"; public static final String MUTABLE = "mutable"; public static final String NAMESPACE = "namespace"; + /** @since 5.4 */ + public static final String NULLPTR = "nullptr"; public static final String NEW = "new"; public static final String NOT = "not"; public static final String NOT_EQ = "not_eq"; @@ -163,6 +165,8 @@ public class Keywords { public static final char[] cMUTABLE = "mutable".toCharArray(); public static final char[] cNAMESPACE = "namespace".toCharArray(); public static final char[] cNEW = "new".toCharArray(); + /** @since 5.4 */ + public static final char[] cNULLPTR = NULLPTR.toCharArray(); public static final char[] cNOT = "not".toCharArray(); public static final char[] cNOT_EQ = "not_eq".toCharArray(); public static final char[] cOPERATOR = "operator".toCharArray(); @@ -361,6 +365,7 @@ public class Keywords { cppkeywords.put(Keywords.cMUTABLE, IToken.t_mutable); cppkeywords.put(Keywords.cNAMESPACE, IToken.t_namespace); cppkeywords.put(Keywords.cNEW, IToken.t_new); + cppkeywords.put(Keywords.cNULLPTR, IToken.t_nullptr); cppkeywords.put(Keywords.cOPERATOR, IToken.t_operator); cppkeywords.put(Keywords.cPRIVATE, IToken.t_private); cppkeywords.put(Keywords.cPROTECTED, IToken.t_protected); diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/AbstractGNUSourceCodeParser.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/AbstractGNUSourceCodeParser.java index b8f79726547..0f1a4b7c758 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/AbstractGNUSourceCodeParser.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/AbstractGNUSourceCodeParser.java @@ -1409,6 +1409,7 @@ public abstract class AbstractGNUSourceCodeParser implements ISourceCodeParser { case IASTLiteralExpression.lk_integer_constant: case IASTLiteralExpression.lk_true: case IASTLiteralExpression.lk_false: + case IASTLiteralExpression.lk_nullptr: throwBacktrack(operatorToken); } } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/ArithmeticConversion.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/ArithmeticConversion.java index 8c019b347fc..8bdc3abcf97 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/ArithmeticConversion.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/ArithmeticConversion.java @@ -89,6 +89,7 @@ public abstract class ArithmeticConversion { switch (kind) { case eUnspecified: case eVoid: + case eNullPtr: return false; default: return true; @@ -121,6 +122,7 @@ public abstract class ArithmeticConversion { case eFloat: case eUnspecified: case eVoid: + case eNullPtr: return false; } } @@ -224,6 +226,7 @@ public abstract class ArithmeticConversion { case eUnspecified: case eDouble: case eFloat: + case eNullPtr: assert false; } } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/SizeofCalculator.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/SizeofCalculator.java index 6b903cccd04..52863030731 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/SizeofCalculator.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/SizeofCalculator.java @@ -161,6 +161,8 @@ public class SizeofCalculator { return size_2; case eChar32: return size_4; + case eNullPtr: + return sizeAndAlignmentOfPointer(); default: return null; } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/Value.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/Value.java index 0e635c650f3..778aab8001b 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/Value.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/Value.java @@ -450,6 +450,7 @@ public class Value implements IValue { IASTLiteralExpression litEx= (IASTLiteralExpression) e; switch (litEx.getKind()) { case IASTLiteralExpression.lk_false: + case IASTLiteralExpression.lk_nullptr: return 0; case IASTLiteralExpression.lk_true: return 1; diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTSimpleDeclSpecifier.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTSimpleDeclSpecifier.java index fae6dae27d8..7e2b043811f 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTSimpleDeclSpecifier.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTSimpleDeclSpecifier.java @@ -116,6 +116,9 @@ public class CASTSimpleDeclSpecifier extends CASTBaseDeclSpecifier implements IC return t_unspecified; case eVoid: return t_void; + case eNullPtr: + // Null pointer type cannot be expressed with a simple declaration specifier. + break; } return t_unspecified; } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CBasicType.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CBasicType.java index 55b569cac09..377d591ab31 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CBasicType.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CBasicType.java @@ -217,6 +217,9 @@ public class CBasicType implements ICBasicType, ISerializableType { return t_void; case eUnspecified: return t_unspecified; + case eNullPtr: + // Null pointer type cannot be expressed wit ha simple decl specifier. + break; } return t_unspecified; } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTLiteralExpression.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTLiteralExpression.java index a439bfa8f03..5b90d709c59 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTLiteralExpression.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTLiteralExpression.java @@ -130,6 +130,8 @@ public class CPPASTLiteralExpression extends ASTNode implements ICPPASTLiteralEx IType type = new CPPBasicType(getCharType(), 0, this); type = new CPPQualifierType(type, true, false); return new CPPArrayType(type, getStringLiteralSize()); + case lk_nullptr: + return CPPBasicType.NULL_PTR; } return new ProblemType(ISemanticProblem.TYPE_UNKNOWN_FOR_EXPRESSION); } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTSimpleDeclSpecifier.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTSimpleDeclSpecifier.java index 142990c2654..66ff6e4d8e1 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTSimpleDeclSpecifier.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTSimpleDeclSpecifier.java @@ -101,6 +101,9 @@ public class CPPASTSimpleDeclSpecifier extends CPPASTBaseDeclSpecifier implement return t_unspecified; case eVoid: return t_void; + case eNullPtr: + // Null pointer type cannot be expressed wit ha simple decl specifier. + break; } return t_unspecified; } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPBasicType.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPBasicType.java index 1a96060d666..592255ac337 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPBasicType.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPBasicType.java @@ -28,6 +28,7 @@ import org.eclipse.core.runtime.CoreException; */ public class CPPBasicType implements ICPPBasicType, ISerializableType { public static final CPPBasicType BOOLEAN = new CPPBasicType(Kind.eBoolean, 0, null); + public static final CPPBasicType NULL_PTR = new CPPBasicType(Kind.eNullPtr, 0, null); private final Kind fKind; private final int fModifiers; @@ -246,6 +247,9 @@ public class CPPBasicType implements ICPPBasicType, ISerializableType { return t_void; case eUnspecified: return t_unspecified; + case eNullPtr: + // Null pointer type cannot be expressed wit ha simple decl specifier. + break; } return t_unspecified; } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/GNUCPPSourceParser.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/GNUCPPSourceParser.java index cf03470c049..7ee540631fb 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/GNUCPPSourceParser.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/GNUCPPSourceParser.java @@ -1635,13 +1635,11 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { case IToken.tINTEGER: t = consume(); literalExpression = nodeFactory.newLiteralExpression(IASTLiteralExpression.lk_integer_constant, t.getImage()); - ((ASTNode) literalExpression).setOffsetAndLength(t.getOffset(), t.getEndOffset()- t.getOffset()); - return literalExpression; + return setRange(literalExpression, t.getOffset(), t.getEndOffset()); case IToken.tFLOATINGPT: t = consume(); literalExpression = nodeFactory.newLiteralExpression(IASTLiteralExpression.lk_float_constant, t.getImage()); - ((ASTNode) literalExpression).setOffsetAndLength(t.getOffset(), t.getEndOffset() - t.getOffset()); - return literalExpression; + return setRange(literalExpression, t.getOffset(), t.getEndOffset()); case IToken.tSTRING: case IToken.tLSTRING: case IToken.tUTF16STRING: @@ -1653,24 +1651,24 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { case IToken.tUTF32CHAR: t = consume(); literalExpression = nodeFactory.newLiteralExpression(IASTLiteralExpression.lk_char_constant, t.getImage()); - ((ASTNode) literalExpression).setOffsetAndLength(t.getOffset(), t.getEndOffset() - t.getOffset()); - return literalExpression; + return setRange(literalExpression, t.getOffset(), t.getEndOffset()); case IToken.t_false: t = consume(); literalExpression = nodeFactory.newLiteralExpression(IASTLiteralExpression.lk_false, t.getImage()); - ((ASTNode) literalExpression).setOffsetAndLength(t.getOffset(), t.getEndOffset() - t.getOffset()); - return literalExpression; + return setRange(literalExpression, t.getOffset(), t.getEndOffset()); case IToken.t_true: t = consume(); literalExpression = nodeFactory.newLiteralExpression(IASTLiteralExpression.lk_true, t.getImage()); - ((ASTNode) literalExpression).setOffsetAndLength(t.getOffset(), t.getEndOffset() - t.getOffset()); - return literalExpression; - + return setRange(literalExpression, t.getOffset(), t.getEndOffset()); + case IToken.t_nullptr: + t= consume(); + literalExpression = nodeFactory.newLiteralExpression(IASTLiteralExpression.lk_nullptr, t.getImage()); + return setRange(literalExpression, t.getOffset(), t.getEndOffset()); + case IToken.t_this: t = consume(); literalExpression = nodeFactory.newLiteralExpression(IASTLiteralExpression.lk_this, t.getImage()); - ((ASTNode) literalExpression).setOffsetAndLength(t.getOffset(), t.getEndOffset() - t.getOffset()); - return literalExpression; + return setRange(literalExpression, t.getOffset(), t.getEndOffset()); case IToken.tLPAREN: if (supportStatementsInExpressions && LT(2) == IToken.tLBRACE) { return compoundStatementExpression(); @@ -1694,9 +1692,7 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { case IToken.tBITCOMPLEMENT: { IASTName name = qualifiedName(ctx, strat); IASTIdExpression idExpression = nodeFactory.newIdExpression(name); - ((ASTNode) idExpression).setOffsetAndLength(((ASTNode) name).getOffset(), ((ASTNode) name).getOffset() - + ((ASTNode) name).getLength() - ((ASTNode) name).getOffset()); - return idExpression; + return setRange(idExpression, name); } case IToken.tLBRACKET: return lambdaExpression(); diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/BuiltinOperators.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/BuiltinOperators.java index 8ef3c1de708..259f247bf2c 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/BuiltinOperators.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/BuiltinOperators.java @@ -11,10 +11,7 @@ package org.eclipse.cdt.internal.core.dom.parser.cpp.semantics; import static org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.ExpressionTypes.typeOrFunctionSet; -import static org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.SemanticUtil.ALLCVQ; -import static org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.SemanticUtil.CVTYPE; -import static org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.SemanticUtil.REF; -import static org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.SemanticUtil.TDEF; +import static org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.SemanticUtil.*; import java.util.ArrayList; import java.util.HashSet; @@ -609,6 +606,7 @@ class BuiltinOperators { case eWChar: case eUnspecified: case eVoid: + case eNullPtr: return false; } } @@ -629,6 +627,7 @@ class BuiltinOperators { case eWChar: return true; case eUnspecified: + case eNullPtr: case eVoid: return false; } @@ -651,6 +650,7 @@ class BuiltinOperators { case eFloat: case eUnspecified: case eVoid: + case eNullPtr: return false; } } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/Conversions.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/Conversions.java index e6e19133d69..66431d14421 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/Conversions.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/Conversions.java @@ -1021,12 +1021,22 @@ public class Conversions { // 4.7 integral conversion // 4.8 floating point conversion // 4.9 floating-integral conversion + final Kind tgtKind = ((IBasicType) t).getKind(); if (s instanceof IBasicType) { - if (((IBasicType) s).getKind() == Kind.eVoid) + final Kind srcKind = ((IBasicType) s).getKind(); + if (srcKind == Kind.eVoid) + return false; + // 4.12 std::nullptr_t can be converted to bool + if (srcKind == Kind.eNullPtr && tgtKind != Kind.eBoolean) + return false; + // 4.10-1 a null pointer constant can be converted to std::nullptr_t + if (tgtKind == Kind.eNullPtr && !isNullPointerConstant(s)) return false; cost.setRank(Rank.CONVERSION); - cost.setCouldNarrow(); + if (srcKind != Kind.eNullPtr && tgtKind != Kind.eNullPtr) { + cost.setCouldNarrow(); + } return true; } if (s instanceof ICPPEnumeration && !((ICPPEnumeration) s).isScoped()) { @@ -1036,7 +1046,6 @@ public class Conversions { return true; } // 4.12 pointer or pointer to member type can be converted to an rvalue of type bool - final Kind tgtKind = ((IBasicType) t).getKind(); if (tgtKind == Kind.eBoolean && s instanceof IPointerType) { cost.setRank(Rank.CONVERSION_PTR_BOOL); return true; @@ -1119,7 +1128,11 @@ public class Conversions { private static boolean isNullPointerConstant(IType s) { if (s instanceof CPPBasicType) { - IASTExpression exp = ((CPPBasicType) s).getCreatedFromExpression(); + final CPPBasicType basicType = (CPPBasicType) s; + if (basicType.getKind() == Kind.eNullPtr) + return true; + + IASTExpression exp = basicType.getCreatedFromExpression(); if (exp != null) { Long val= Value.create(exp, Value.MAX_RECURSION_DEPTH).numericalValue(); if (val != null && val == 0) { @@ -1252,7 +1265,6 @@ public class Conversions { } private static boolean isNullPtr(IType t1) { - // mstodo null-ptr type - return false; + return t1 instanceof IBasicType && ((IBasicType) t1).getKind() == Kind.eNullPtr; } } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/token/KeywordSets.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/token/KeywordSets.java index 42cd304226b..86cdeedf82b 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/token/KeywordSets.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/token/KeywordSets.java @@ -448,6 +448,7 @@ public class KeywordSets { ALL_CPP.add( Keywords.NEW); ALL_CPP.add( Keywords.NOT); ALL_CPP.add( Keywords.NOT_EQ); + ALL_CPP.add( Keywords.NULLPTR); ALL_CPP.add( Keywords.OPERATOR); ALL_CPP.add( Keywords.OR); ALL_CPP.add( Keywords.OR_EQ); @@ -532,6 +533,7 @@ public class KeywordSets { KEYWORDS_CPP.add( Keywords.NEW ); KEYWORDS_CPP.add( Keywords.NOT ); KEYWORDS_CPP.add( Keywords.NOT_EQ ); + KEYWORDS_CPP.add( Keywords.NULLPTR ); KEYWORDS_CPP.add( Keywords.OPERATOR ); KEYWORDS_CPP.add( Keywords.OR ); KEYWORDS_CPP.add( Keywords.OR_EQ ); |