Package org.eclipse.cdt.core.dom.ast

# Interface IASTProblem

All Superinterfaces:
  `IASTNode`, `IProblem`

public interface IASTProblem extends IProblem, IASTNode
Interface for problems in the AST tree.

Restriction:
  This interface is not intended to be implemented by clients.
Restriction:
  This interface is not intended to be extended by clients.

## Nested Class Summary

## Nested classes/interfaces inherited from interface org.eclipse.cdt.core.dom.ast.IASTNode

`IASTNode.CopyStyle`

## Field Summary

### Fields inherited from interface org.eclipse.cdt.core.dom.ast.IASTNode

`EMPTY_NODE_ARRAY`

### Fields inherited from interface org.eclipse.cdt.core.parser.IProblem

`A_NAMESPACE_NAME, A_PREPROC_CONDITION, A_PREPROC_CONDITIONAL_MISMATCH, A_PREPROC_INCLUDE_FILENAME, A_PREPROC_MACRO_NAME, A_PREPROC_POUND_ERROR, A_PREPROC_POUND_WARNING, A_PREPROC_UNKNOWN_DIRECTIVE, A_SCANNER_BADCHAR, A_SYMBOL_NAME, A_TYPE_NAME, FILENAME_NOT_PROVIDED, IGNORE_CATEGORIES_MASK, INT_VALUE_NOT_PROVIDED, INTERNAL_RELATED, MISSING_SEMICOLON, PREPROCESSOR_CIRCULAR_INCLUSION, PREPROCESSOR_CONDITIONAL_EVAL_ERROR, PREPROCESSOR_DEFINITION_NOT_FOUND, PREPROCESSOR_EXCEEDS_MAXIMUM_INCLUSION_DEPTH, PREPROCESSOR_INCLUSION_NOT_FOUND, PREPROCESSOR_INVALID_DIRECTIVE, PREPROCESSOR_INVALID_MACRO_DEFN, PREPROCESSOR_INVALID_MACRO_REDEFN, PREPROCESSOR_INVALID_USE_OUTSIDE_PREPROCESSOR_DIRECTIVE, PREPROCESSOR_INVALID_VA_ARGS, PREPROCESSOR_MACRO_PASTING_ERROR, PREPROCESSOR_MACRO_USAGE_ERROR, PREPROCESSOR_MISSING_RPAREN_PARMLIST, PREPROCESSOR_MULTIPLE_USER_DEFINED_SUFFIXES_IN_CONCATENATION, PREPROCESSOR_POUND_ERROR, PREPROCESSOR_POUND_WARNING, PREPROCESSOR_RELATED, PREPROCESSOR_UNBALANCE_CONDITION, SCANNER_ASSIGNMENT_NOT_ALLOWED, SCANNER_BAD_BINARY_FORMAT, SCANNER_BAD_CHARACTER, SCANNER_BAD_CONDITIONAL_EXPRESSION, SCANNER_BAD_DECIMAL_FORMAT, SCANNER_BAD_FLOATING_POINT, SCANNER_BAD_HEX_FORMAT, SCANNER_BAD_OCTAL_FORMAT, SCANNER_CONSTANT_WITH_BAD_SUFFIX, SCANNER_DIVIDE_BY_ZERO, SCANNER_EXPRESSION_SYNTAX_ERROR, SCANNER_FLOAT_WITH_BAD_PREFIX, SCANNER_ILLEGAL_IDENTIFIER, SCANNER_INVALID_ESCAPECHAR, SCANNER_MISSING_R_PAREN, SCANNER_RELATED, SCANNER_UNBOUNDED_STRING, SCANNER_UNEXPECTED_EOF, SEMANTIC_AMBIGUOUS_LOOKUP, SEMANTIC_BAD_VISIBILITY, SEMANTIC_CIRCULAR_INHERITANCE, SEMANTIC_ILLFORMED_FRIEND, SEMANTIC_INVALID_CONVERSION_TYPE, SEMANTIC_INVALID_OVERLOAD, SEMANTIC_INVALID_TEMPLATE, SEMANTIC_INVALID_TEMPLATE_ARGUMENT, SEMANTIC_INVALID_TEMPLATE_PARAMETER, SEMANTIC_INVALID_TYPE, SEMANTIC_INVALID_USING, SEMANTIC_MALFORMED_EXPRESSION, SEMANTIC_NAME_NOT_FOUND, SEMANTIC_NAME_NOT_PROVIDED, SEMANTIC_RECURSIVE_TEMPLATE_INSTANTIATION, SEMANTIC_REDECLARED_TEMPLATE_PARAMETER, SEMANTIC_UNABLE_TO_RESOLVE_FUNCTION, SEMANTIC_UNIQUE_NAME_PREDEFINED, SEMANTICS_RELATED, SYNTAX_ERROR, SYNTAX_RELATED, TEMPLATE_ARGUMENT_NESTING_DEPTH_LIMIT_EXCEEDED`

## Method Summary

Modifier and Type
Method
Description
`IASTProblem`
`copy()`
Returns a mutable copy of the tree rooted at this node.
`IASTProblem`
`copy(IASTNode.CopyStyle style)`
Returns a mutable copy of the tree rooted at this node.
`IASTProblem`
`getOriginalProblem()`
If this problem was triggered by another problem, returns that problem, otherwise returns null.
`void`
`setOriginalProblem(IASTProblem original)`
Record another problem as being the original cause of this one.

### Methods inherited from interface org.eclipse.cdt.core.dom.ast.IASTNode

`accept, contains, getChildren, getContainingFilename, getFileLocation, getLeadingSyntax, getNodeLocations, getOriginalNode, getParent, getPropertyInParent, getRawSignature, getSyntax, getTrailingSyntax, getTranslationUnit, isActive, isFrozen, isPartOfTranslationUnitFile, setParent, setPropertyInParent`

### Methods inherited from interface org.eclipse.cdt.core.parser.IProblem

`checkCategory, getArguments, getID, getMessage, getMessageWithLocation, getOriginatingFileName, getSourceEnd, getSourceLineNumber, getSourceStart, isError, isWarning`

## Method Details

### copy

IASTProblem copy()
Description copied from interface: `IASTNode`
Returns a mutable copy of the tree rooted at this node. The following postconditions hold:

     copy.getParent() == null
     copy.getPropertyInParent() == null
     copy.isFrozen() == false

Preprocessor nodes do not currently support being copied. Implicit name nodes are not copied, instead they can be regenerated if required.

Calling this method is equivalent to `copy(CopyStyle.withoutLocations)`.

Specified by:
  `copy` in interface `IASTNode`
Since:
  5.1

### copy

IASTProblem copy(IASTNode.CopyStyle style)
Description copied from interface: `IASTNode`
Returns a mutable copy of the tree rooted at this node. The following postconditions hold:

     copy.getParent() == null
     copy.getPropertyInParent() == null
     copy.isFrozen() == false

Preprocessor nodes do not currently support being copied. Implicit name nodes are not copied, instead they can be regenerated if required.

Specified by:
  `copy` in interface `IASTNode`
Parameters:
  `style` - `IASTNode.CopyStyle` create a copy with or without locations. Please see `IASTNode.CopyStyle` for restrictions on copies with Locations.
Since:
  5.3

### getOriginalProblem

IASTProblem getOriginalProblem()
If this problem was triggered by another problem, returns that problem, otherwise returns null.

Since:
  6.4

### setOriginalProblem

void setOriginalProblem(IASTProblem original)
Record another problem as being the original cause of this one.

Since:
  6.4