class MacroArgumentExtractor extends AnyRef
Utility class that obtains the arguments of the macro at loc of the translation
unit tu (we used CDT's naming convention here.) The way this works is by performing
macro expansion using CDT's MacroExpander, which accepts a MacroExpansionTracker,
which is informed of arguments as they are determined. The problem is that the
default MacroExpansionTracker does not make these arguments available separately
but only in a form where all arguments have been merged back into a string.
By supplying a custom tracker that inherits from MacroExpansionTracker and overrides
the method setExpandedMacroArgument, we can intercept arguments and store them in
a list for later retrieval. We wrap this rather complicated way of accessing the
macro arguments in the single public method getArguments of the
MacroArgumentExtractor.
This class must be in this package in order to have access to PreprocessorMacro.
- Alphabetic
- By Inheritance
- MacroArgumentExtractor
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Instance Constructors
- new MacroArgumentExtractor(tu: IASTTranslationUnit, loc: IASTFileLocation)
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native() @HotSpotIntrinsicCandidate()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def getArguments: List[String]
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
Deprecated Value Members
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable]) @Deprecated
- Deprecated