parser

package
v1.3.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 15, 2025 License: BSD-3-Clause Imports: 12 Imported by: 0

Documentation

Overview

Package parser provides the logic for traversing the ANTLR generated parse tree. Provides a visitor and related functions.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func IdentityTransform

func IdentityTransform(e expr.Expression) expr.Expression

IdentityTransform returns the given expression without any modification.

Types

type FHIRPathErrorListener

type FHIRPathErrorListener struct {
	*antlr.DefaultErrorListener
	// contains filtered or unexported fields
}

func (*FHIRPathErrorListener) Error

func (l *FHIRPathErrorListener) Error() error

func (*FHIRPathErrorListener) SyntaxError

func (l *FHIRPathErrorListener) SyntaxError(recognizer antlr.Recognizer, offendingSymbol interface{}, line, column int, msg string, e antlr.RecognitionException)

type FHIRPathVisitor

type FHIRPathVisitor struct {
	*grammar.BasefhirpathVisitor

	Functions  funcs.FunctionTable
	Transform  VisitorTransform
	Permissive bool
	// contains filtered or unexported fields
}

func (*FHIRPathVisitor) Visit

func (v *FHIRPathVisitor) Visit(tree antlr.ParseTree) interface{}

func (*FHIRPathVisitor) VisitAdditiveExpression

func (v *FHIRPathVisitor) VisitAdditiveExpression(ctx *grammar.AdditiveExpressionContext) interface{}

func (*FHIRPathVisitor) VisitAndExpression

func (v *FHIRPathVisitor) VisitAndExpression(ctx *grammar.AndExpressionContext) interface{}

func (*FHIRPathVisitor) VisitBooleanLiteral

func (v *FHIRPathVisitor) VisitBooleanLiteral(ctx *grammar.BooleanLiteralContext) interface{}

VisitBooleanLiteral returns a BooleanLiteralExpression, returning an error if there is an error during creation of the Boolean.

func (*FHIRPathVisitor) VisitDateLiteral

func (v *FHIRPathVisitor) VisitDateLiteral(ctx *grammar.DateLiteralContext) interface{}

VisitDateLiteral returns a DateLiteralExpression, returning an error if there is an error during creation of the Date type.

func (*FHIRPathVisitor) VisitDateTimeLiteral

func (v *FHIRPathVisitor) VisitDateTimeLiteral(ctx *grammar.DateTimeLiteralContext) interface{}

VisitDateTimeLiteral returns a DateTimeLiteralExpression, returning an error if there is an error during creation of the DateTime type.

func (*FHIRPathVisitor) VisitDateTimePrecision

func (v *FHIRPathVisitor) VisitDateTimePrecision(ctx *grammar.DateTimePrecisionContext) interface{}

func (*FHIRPathVisitor) VisitEqualityExpression

func (v *FHIRPathVisitor) VisitEqualityExpression(ctx *grammar.EqualityExpressionContext) interface{}

VisitEqualityExpression both equality subexpressions and constructs an Equality Expression from the results of each subexpression

func (*FHIRPathVisitor) VisitExternalConstant

func (v *FHIRPathVisitor) VisitExternalConstant(ctx *grammar.ExternalConstantContext) interface{}

func (*FHIRPathVisitor) VisitExternalConstantTerm

func (v *FHIRPathVisitor) VisitExternalConstantTerm(ctx *grammar.ExternalConstantTermContext) interface{}

func (*FHIRPathVisitor) VisitFunction

func (v *FHIRPathVisitor) VisitFunction(ctx *grammar.FunctionContext) interface{}

func (*FHIRPathVisitor) VisitFunctionInvocation

func (v *FHIRPathVisitor) VisitFunctionInvocation(ctx *grammar.FunctionInvocationContext) interface{}

func (*FHIRPathVisitor) VisitIdentifier

func (v *FHIRPathVisitor) VisitIdentifier(ctx *grammar.IdentifierContext) interface{}

func (*FHIRPathVisitor) VisitImpliesExpression

func (v *FHIRPathVisitor) VisitImpliesExpression(ctx *grammar.ImpliesExpressionContext) interface{}

func (*FHIRPathVisitor) VisitIndexInvocation

func (v *FHIRPathVisitor) VisitIndexInvocation(ctx *grammar.IndexInvocationContext) interface{}

func (*FHIRPathVisitor) VisitIndexerExpression

func (v *FHIRPathVisitor) VisitIndexerExpression(ctx *grammar.IndexerExpressionContext) interface{}

VisitIndexerExpression visits both the left side expression and right side expression, and constructs an index expression. If the right side expression does not evaluate to an Integer, returns an error

func (*FHIRPathVisitor) VisitInequalityExpression

func (v *FHIRPathVisitor) VisitInequalityExpression(ctx *grammar.InequalityExpressionContext) interface{}

func (*FHIRPathVisitor) VisitInvocationExpression

func (v *FHIRPathVisitor) VisitInvocationExpression(ctx *grammar.InvocationExpressionContext) interface{}

VisitInvocationExpression visits both sides, and constructs an expression sequence.

func (*FHIRPathVisitor) VisitInvocationTerm

func (v *FHIRPathVisitor) VisitInvocationTerm(ctx *grammar.InvocationTermContext) interface{}

func (*FHIRPathVisitor) VisitLiteralTerm

func (v *FHIRPathVisitor) VisitLiteralTerm(ctx *grammar.LiteralTermContext) interface{}

func (*FHIRPathVisitor) VisitMemberInvocation

func (v *FHIRPathVisitor) VisitMemberInvocation(ctx *grammar.MemberInvocationContext) interface{}

VisitMemberInvocation checks to see if the identifier corresponds to a resource type and is the root of the expression. If so, it will return a TypeExpression. Otherwise, it returns a FieldExpression.

func (*FHIRPathVisitor) VisitMembershipExpression

func (v *FHIRPathVisitor) VisitMembershipExpression(ctx *grammar.MembershipExpressionContext) interface{}

func (*FHIRPathVisitor) VisitMultiplicativeExpression

func (v *FHIRPathVisitor) VisitMultiplicativeExpression(ctx *grammar.MultiplicativeExpressionContext) interface{}

func (*FHIRPathVisitor) VisitNullLiteral

func (v *FHIRPathVisitor) VisitNullLiteral(ctx *grammar.NullLiteralContext) interface{}

VisitNullLiteral returns a NullLiteralExpression, without any error.

func (*FHIRPathVisitor) VisitNumberLiteral

func (v *FHIRPathVisitor) VisitNumberLiteral(ctx *grammar.NumberLiteralContext) interface{}

VisitNumberLiteral returns either an integer or decimal, depending on whether or not the number contains a decimal. Returns an error if there is an error during creation of the number.

func (*FHIRPathVisitor) VisitOrExpression

func (v *FHIRPathVisitor) VisitOrExpression(ctx *grammar.OrExpressionContext) interface{}

func (*FHIRPathVisitor) VisitParamList

func (v *FHIRPathVisitor) VisitParamList(ctx *grammar.ParamListContext) interface{}

func (*FHIRPathVisitor) VisitParenthesizedTerm

func (v *FHIRPathVisitor) VisitParenthesizedTerm(ctx *grammar.ParenthesizedTermContext) interface{}

func (*FHIRPathVisitor) VisitPluralDateTimePrecision

func (v *FHIRPathVisitor) VisitPluralDateTimePrecision(ctx *grammar.PluralDateTimePrecisionContext) interface{}

func (*FHIRPathVisitor) VisitPolarityExpression

func (v *FHIRPathVisitor) VisitPolarityExpression(ctx *grammar.PolarityExpressionContext) interface{}

func (*FHIRPathVisitor) VisitProg

func (v *FHIRPathVisitor) VisitProg(ctx *grammar.ProgContext) interface{}

func (*FHIRPathVisitor) VisitQualifiedIdentifier

func (v *FHIRPathVisitor) VisitQualifiedIdentifier(ctx *grammar.QualifiedIdentifierContext) interface{}

func (*FHIRPathVisitor) VisitQuantity

func (v *FHIRPathVisitor) VisitQuantity(ctx *grammar.QuantityContext) interface{}

func (*FHIRPathVisitor) VisitQuantityLiteral

func (v *FHIRPathVisitor) VisitQuantityLiteral(ctx *grammar.QuantityLiteralContext) interface{}

VisitQuantityLiteral returns a QuantityLiteralExpression, returning an error if there is an error during creation of the Quantity type.

func (*FHIRPathVisitor) VisitStringLiteral

func (v *FHIRPathVisitor) VisitStringLiteral(ctx *grammar.StringLiteralContext) interface{}

VisitStringLiteral returns a StringLiteralExpression, returning an error if there is an error during creation of the String.

func (*FHIRPathVisitor) VisitTermExpression

func (v *FHIRPathVisitor) VisitTermExpression(ctx *grammar.TermExpressionContext) interface{}

func (*FHIRPathVisitor) VisitThisInvocation

func (v *FHIRPathVisitor) VisitThisInvocation(ctx *grammar.ThisInvocationContext) interface{}

func (*FHIRPathVisitor) VisitTimeLiteral

func (v *FHIRPathVisitor) VisitTimeLiteral(ctx *grammar.TimeLiteralContext) interface{}

VisitTimeLiteral returns a TimeLiteralExpression, returning an error if there is an error during creation of the Time type.

func (*FHIRPathVisitor) VisitTotalInvocation

func (v *FHIRPathVisitor) VisitTotalInvocation(ctx *grammar.TotalInvocationContext) interface{}

func (*FHIRPathVisitor) VisitTypeExpression

func (v *FHIRPathVisitor) VisitTypeExpression(ctx *grammar.TypeExpressionContext) interface{}

func (*FHIRPathVisitor) VisitTypeSpecifier

func (v *FHIRPathVisitor) VisitTypeSpecifier(ctx *grammar.TypeSpecifierContext) interface{}

func (*FHIRPathVisitor) VisitUnionExpression

func (v *FHIRPathVisitor) VisitUnionExpression(ctx *grammar.UnionExpressionContext) interface{}

func (*FHIRPathVisitor) VisitUnit

func (v *FHIRPathVisitor) VisitUnit(ctx *grammar.UnitContext) interface{}

type VisitResult

type VisitResult struct {
	Result expr.Expression
	Error  error
}

type VisitorTransform

type VisitorTransform func(expr.Expression) expr.Expression

A VisitorTransform is a function which transforms the specified expression. This is used in FHIRPath Patch to modify expressions.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL