Class StructDeclaration

java.lang.Object
nz.org.riskscape.rl.ast.StructDeclaration
All Implemented Interfaces:
Expression

public class StructDeclaration extends Object
  • Constructor Details

  • Method Details

    • anonMember

      public static StructDeclaration.Member anonMember(Expression expression)
      Returns:
      an anonymous attribute declaration wrapping the given expression.
    • jsonStyleMember

      public static StructDeclaration.Member jsonStyleMember(Token ident, Expression expression)

      Returns a json style (foo: bar) struct member

    • jsonStyleMember

      public static StructDeclaration.Member jsonStyleMember(String ident, Expression expression)

      Returns a json style (foo: bar) struct member

    • sqlStyleMember

      public static StructDeclaration.Member sqlStyleMember(Token ident, Expression expression, Token as)

      Returns an sql style (bar as foo) struct member

    • selectAllMember

      public static StructDeclaration.Member selectAllMember(Token asterisk)

      Returns a select-all ({*}) struct member

    • appendSource

      protected void appendSource(StringBuilder appendTo)

      Implementers extend this to append their source to the given string builder. Done via string builder to encourage a more efficient implementation than is possible with concatenating multiple toString calls that typically contruct a string builder anyway.

    • accept

      public <T, R> R accept(ExpressionVisitor<T,R> visitor, T data)
    • getMember

      public StructDeclaration.Member getMember(int index)

      Shortcut for getMembers().get(index)

      Returns:
      the AttrDeclaration at the given zero-based index
      Throws:
      IndexOutOfBoundsException - if the index is < 0 or > size
    • withNewMembers

      public StructDeclaration withNewMembers(List<StructDeclaration.Member> newMembers, Optional<Pair<Token,Token>> newBoundary)
    • equals

      public boolean equals(Object o)
    • canEqual

      protected boolean canEqual(Object other)
    • hashCode

      public int hashCode()
    • getMembers

      public List<StructDeclaration.Member> getMembers()
    • getBoundary

      public Optional<Pair<Token,Token>> getBoundary()
      Returns:
      a pair of tokens that represent the start and end of this expression, to be used when giving users information about where errors have occurred. If the expression has been rebuilt then the boundary may be empty or it may be from the original expression. Intended for use in problems to trace errors back to their source.
    • toString

      public final String toString()
      Overrides:
      toString in class Object
      Returns:
      the source, surrounded by the class name to make it easier to discern from a plane string among other debug output
    • toSource

      public final String toSource()
      Specified by:
      toSource in interface Expression
      Returns:
      a normalized version of the AST that can be parsed to be exactly the same AST as this