Interface SyntaxTree

All Superinterfaces:
Tree
All Known Subinterfaces:
ErrorNode, ParseTree, RuleNode, TerminalNode
All Known Implementing Classes:
ErrorNodeImpl, GrammarInterpreterRuleContext, graphemesParser.Emoji_sequenceContext, graphemesParser.Grapheme_clusterContext, graphemesParser.GraphemesContext, GroovyLikeParser.ArgsContext, GroovyLikeParser.BlockContext, GroovyLikeParser.ClassBodyContext, GroovyLikeParser.ClosureContext, GroovyLikeParser.CompilationUnitContext, GroovyLikeParser.ExpressionContext, GroovyLikeParser.FieldDeclContext, GroovyLikeParser.MemberContext, GroovyLikeParser.MethodDeclContext, GroovyLikeParser.NlsContext, GroovyLikeParser.PackageDeclContext, GroovyLikeParser.ParamsContext, GroovyLikeParser.PostfixContext, GroovyLikeParser.PrimaryContext, GroovyLikeParser.QualifiedNameContext, GroovyLikeParser.SepContext, GroovyLikeParser.StatementContext, GroovyLikeParser.TypeDeclContext, InterpreterRuleContext, JavaParser.AnnotationConstantRestContext, JavaParser.AnnotationContext, JavaParser.AnnotationMethodOrConstantRestContext, JavaParser.AnnotationMethodRestContext, JavaParser.AnnotationNameContext, JavaParser.AnnotationTypeBodyContext, JavaParser.AnnotationTypeDeclarationContext, JavaParser.AnnotationTypeElementDeclarationContext, JavaParser.AnnotationTypeElementRestContext, JavaParser.ArgumentsContext, JavaParser.ArrayCreatorRestContext, JavaParser.ArrayInitializerContext, JavaParser.BlockContext, JavaParser.BlockStatementContext, JavaParser.CatchClauseContext, JavaParser.CatchTypeContext, JavaParser.ClassBodyContext, JavaParser.ClassBodyDeclarationContext, JavaParser.ClassCreatorRestContext, JavaParser.ClassDeclarationContext, JavaParser.ClassOrInterfaceModifierContext, JavaParser.ClassOrInterfaceTypeContext, JavaParser.CompilationUnitContext, JavaParser.ConstantDeclaratorContext, JavaParser.ConstantExpressionContext, JavaParser.ConstDeclarationContext, JavaParser.ConstructorBodyContext, JavaParser.ConstructorDeclarationContext, JavaParser.CreatedNameContext, JavaParser.CreatorContext, JavaParser.DefaultValueContext, JavaParser.ElementValueArrayInitializerContext, JavaParser.ElementValueContext, JavaParser.ElementValuePairContext, JavaParser.ElementValuePairsContext, JavaParser.EnhancedForControlContext, JavaParser.EnumBodyDeclarationsContext, JavaParser.EnumConstantContext, JavaParser.EnumConstantNameContext, JavaParser.EnumConstantsContext, JavaParser.EnumDeclarationContext, JavaParser.ExplicitGenericInvocationContext, JavaParser.ExplicitGenericInvocationSuffixContext, JavaParser.ExpressionContext, JavaParser.ExpressionListContext, JavaParser.FieldDeclarationContext, JavaParser.FinallyBlockContext, JavaParser.ForControlContext, JavaParser.ForInitContext, JavaParser.FormalParameterContext, JavaParser.FormalParameterListContext, JavaParser.FormalParametersContext, JavaParser.ForUpdateContext, JavaParser.GenericConstructorDeclarationContext, JavaParser.GenericInterfaceMethodDeclarationContext, JavaParser.GenericMethodDeclarationContext, JavaParser.ImportDeclarationContext, JavaParser.InnerCreatorContext, JavaParser.InterfaceBodyContext, JavaParser.InterfaceBodyDeclarationContext, JavaParser.InterfaceDeclarationContext, JavaParser.InterfaceMemberDeclarationContext, JavaParser.InterfaceMethodDeclarationContext, JavaParser.LastFormalParameterContext, JavaParser.LiteralContext, JavaParser.LocalVariableDeclarationContext, JavaParser.LocalVariableDeclarationStatementContext, JavaParser.MemberDeclarationContext, JavaParser.MethodBodyContext, JavaParser.MethodDeclarationContext, JavaParser.ModifierContext, JavaParser.NonWildcardTypeArgumentsContext, JavaParser.NonWildcardTypeArgumentsOrDiamondContext, JavaParser.PackageDeclarationContext, JavaParser.ParExpressionContext, JavaParser.PrimaryContext, JavaParser.PrimitiveTypeContext, JavaParser.QualifiedNameContext, JavaParser.QualifiedNameListContext, JavaParser.ResourceContext, JavaParser.ResourcesContext, JavaParser.ResourceSpecificationContext, JavaParser.StatementContext, JavaParser.StatementExpressionContext, JavaParser.SuperSuffixContext, JavaParser.SwitchBlockStatementGroupContext, JavaParser.SwitchLabelContext, JavaParser.TypeArgumentContext, JavaParser.TypeArgumentsContext, JavaParser.TypeArgumentsOrDiamondContext, JavaParser.TypeBoundContext, JavaParser.TypeContext, JavaParser.TypeDeclarationContext, JavaParser.TypeListContext, JavaParser.TypeParameterContext, JavaParser.TypeParametersContext, JavaParser.VariableDeclaratorContext, JavaParser.VariableDeclaratorIdContext, JavaParser.VariableDeclaratorsContext, JavaParser.VariableInitializerContext, JavaParser.VariableModifierContext, ParserRuleContext, RuleContext, RuleContextWithAltNum, TerminalNodeImpl

public interface SyntaxTree extends Tree
A tree that knows about an interval in a token stream is some kind of syntax tree. Subinterfaces distinguish between parse trees and other kinds of syntax trees we might want to create.
  • Method Details

    • getSourceInterval

      @NotNull Interval getSourceInterval()
      Return an Interval indicating the index in the TokenStream of the first and last token associated with this subtree. If this node is a leaf, then the interval represents a single token and has interval i..i for token index i.

      An interval of i..i-1 indicates an empty interval at position i in the input stream, where 0 <= i <= the size of the input token stream. Currently, the code base can only have i=0..n-1 but in concept one could have an empty interval after EOF.

      If source interval is unknown, this returns Interval.INVALID.

      As a weird special case, the source interval for rules matched after EOF is unspecified.