Package-level declarations

Types

Link copied to clipboard
sealed class ASTNode

Base class for all AST nodes in FEEL expressions.

Link copied to clipboard
data class BetweenNode(val value: ASTNode, val lower: ASTNode, val upper: ASTNode, val position: Position) : ASTNode

Between operator.

Link copied to clipboard
data class BinaryOpNode(val left: ASTNode, val operator: String, val right: ASTNode, val position: Position) : ASTNode

Binary operation.

Link copied to clipboard
data class BooleanLiteralNode(val value: Boolean, val position: Position) : ASTNode

Boolean literal.

Link copied to clipboard
data class ComparisonNode(val left: ASTNode, val operator: String, val right: ASTNode, val position: Position) : ASTNode

Comparison operation.

Link copied to clipboard
data class ContextLiteralNode(val entries: List<Pair<String, ASTNode>>, val position: Position) : ASTNode

Context literal (map with string keys).

Link copied to clipboard
class FeelLexer(input: String)

Lexer for FEEL expressions.

Link copied to clipboard
class FeelParser(tokens: List<Token>, source: String = "")

Parser for FEEL expressions.

Link copied to clipboard
data class FilterNode(val collection: ASTNode, val condition: ASTNode, val position: Position) : ASTNode

List filter.

Link copied to clipboard
data class ForExpressionNode(val iterators: List<Iterator>, val body: ASTNode, val position: Position) : ASTNode

For expression for list transformation.

Link copied to clipboard
data class FunctionCallNode(val functionName: String, val arguments: List<ASTNode>, val position: Position) : ASTNode

Function call.

Link copied to clipboard
data class FunctionDefinitionNode(val parameters: List<String>, val body: ASTNode, val position: Position) : ASTNode

Function definition (P2 feature - for future implementation).

Link copied to clipboard
data class IdentifierNode(val name: String, val position: Position) : ASTNode

Variable or function identifier.

Link copied to clipboard
data class IfThenElseNode(val condition: ASTNode, val thenBranch: ASTNode, val elseBranch: ASTNode, val position: Position) : ASTNode

If-then-else conditional (else is mandatory in FEEL).

Link copied to clipboard
data class IndexAccessNode(val collection: ASTNode, val index: ASTNode, val position: Position) : ASTNode

Index access (1-based in FEEL).

Link copied to clipboard
data class InNode(val value: ASTNode, val collection: ASTNode, val position: Position) : ASTNode

In operator for membership testing.

Link copied to clipboard
data class InstanceOfNode(val value: ASTNode, val typeName: String, val position: Position) : ASTNode

Instance of operator for type checking.

Link copied to clipboard
data class Iterator(val variableName: String, val collection: ASTNode)

Iterator for for-expression and quantifiers.

Link copied to clipboard
data class ListLiteralNode(val elements: List<ASTNode>, val position: Position) : ASTNode

List literal (1-based indexing in FEEL).

Link copied to clipboard
data class NamedFunctionCallNode(val functionName: String, val parameters: List<NamedParameter>, val position: Position) : ASTNode

Function call with named parameters.

Link copied to clipboard
data class NamedParameter(val name: String, val value: ASTNode)

Named parameter in function call.

Link copied to clipboard
data class NullLiteralNode(val position: Position) : ASTNode

Null literal.

Link copied to clipboard
data class NumberLiteralNode(val value: BigDecimal, val position: Position) : ASTNode

Number literal (arbitrary precision decimal).

Link copied to clipboard
data class Position(val line: Int, val column: Int, val index: Int)

Position in the source code for error reporting.

Link copied to clipboard
data class PropertyAccessNode(val target: ASTNode, val property: String, val position: Position) : ASTNode

Property access (dot notation).

Link copied to clipboard
data class QuantifierNode(val isSome: Boolean, val iterators: List<Iterator>, val condition: ASTNode, val position: Position) : ASTNode

Quantifier expression (some/every).

Link copied to clipboard
data class RangeLiteralNode(val start: ASTNode, val end: ASTNode, val startInclusive: Boolean, val endInclusive: Boolean, val position: Position) : ASTNode

Range literal.

Link copied to clipboard
data class StringLiteralNode(val value: String, val position: Position) : ASTNode

String literal (single quotes in KFeel).

Link copied to clipboard
data class Token(val type: TokenType, val lexeme: String, val literal: Any?, val position: Position)

Token in the FEEL expression.

Link copied to clipboard

Token types in FEEL language.

Link copied to clipboard
data class UnaryOpNode(val operator: String, val operand: ASTNode, val position: Position) : ASTNode

Unary operation.