TermParser

interface TermParser

Parses one Prolog expression from a String and maps it to the tuProlog term model.

Parsing is performed with a lossless concrete-syntax parser and then converted using scope. Low-level lexical and syntactic exceptions are wrapped in ParseException. The typed entry points additionally verify the resulting runtime type and throw InvalidTermTypeException on a mismatch.

val parser = TermParser.withStandardOperators()
val clause = parser.parseClause("ancestor(X, Y) :- parent(X, Y)")
val custom = parser.parseTerm("a ++ b", OperatorSet(Operator("++", Specifier.YFX, 500)))

Inheritors

Types

Link copied to clipboard
object Companion

Properties

Link copied to clipboard

Operator set used when an overload does not receive one explicitly.

Link copied to clipboard
abstract val scope: Scope

Scope used to construct parsed terms.

Functions

Link copied to clipboard
open fun parseAtom(input: String): Atom

open fun parseAtom(input: String, operators: OperatorSet): Atom

Parses input as an Atom using operators.

Link copied to clipboard
open fun parseClause(input: String): Clause

open fun parseClause(input: String, operators: OperatorSet): Clause

Parses input as a Clause using operators. A final full stop is optional.

Link copied to clipboard
open fun parseConstant(input: String): Constant

open fun parseConstant(input: String, operators: OperatorSet): Constant

Parses input as a Constant using operators.

Link copied to clipboard
open fun parseDirective(input: String): Directive

open fun parseDirective(input: String, operators: OperatorSet): Directive

Parses input as a Directive using operators.

Link copied to clipboard
open fun parseFact(input: String): Fact

open fun parseFact(input: String, operators: OperatorSet): Fact

Parses input as a Fact using operators.

Link copied to clipboard
open fun parseInteger(input: String): Integer

open fun parseInteger(input: String, operators: OperatorSet): Integer

Parses input as an Integer using operators.

Link copied to clipboard
open fun parseNumeric(input: String): Numeric

open fun parseNumeric(input: String, operators: OperatorSet): Numeric

Parses input as a Numeric term using operators.

Link copied to clipboard
open fun parseReal(input: String): Real

open fun parseReal(input: String, operators: OperatorSet): Real

Parses input as a Real using operators.

Link copied to clipboard
open fun parseRule(input: String): Rule

open fun parseRule(input: String, operators: OperatorSet): Rule

Parses input as a Rule using operators.

Link copied to clipboard
open fun parseStruct(input: String): Struct

open fun parseStruct(input: String, operators: OperatorSet): Struct

Parses input as a Struct using operators.

Link copied to clipboard
open fun parseTerm(input: String): Term

abstract fun parseTerm(input: String, operators: OperatorSet): Term

Parses input as any Term using operators.

Link copied to clipboard
open fun parseVar(input: String): Var

open fun parseVar(input: String, operators: OperatorSet): Var

Parses input as a Var using operators.