Class Macro

java.lang.Object
foundry.veil.lib.anarres.cpp.Macro

public class Macro extends Object
A macro object.

This encapsulates a name, an argument count, and a token stream for replacement. The replacement token stream may contain the extra tokens Token.M_ARG and Token.M_STRING.

  • Constructor Details

  • Method Details

    • setSource

      public void setSource(Source s)
      Sets the Source from which this macro was parsed.
    • getSource

      public Source getSource()
      Returns the Source from which this macro was parsed.

      This method may return null if the macro was not parsed from a regular file.

    • getName

      public String getName()
      Returns the name of this macro.
    • setArgs

      public void setArgs(List<String> args)
      Sets the arguments to this macro.
    • isFunctionLike

      public boolean isFunctionLike()
      Returns true if this is a function-like macro.
    • getArgs

      public int getArgs()
      Returns the number of arguments to this macro.
    • setVariadic

      public void setVariadic(boolean b)
      Sets the variadic flag on this Macro.
    • isVariadic

      public boolean isVariadic()
      Returns true if this is a variadic function-like macro.
    • addToken

      public void addToken(Token tok)
      Adds a token to the expansion of this macro.
    • addPaste

      public void addPaste(Token tok)
      Adds a "paste" operator to the expansion of this macro.

      A paste operator causes the next token added to be pasted to the previous token when the macro is expanded. It is an error for a macro to end with a paste token.

    • getText

      public String getText()
    • toString

      public String toString()
      Overrides:
      toString in class Object