Tptp.Bnf.Rule (Tptp v0.1.0)

Copy Markdown View Source

One rule read out of the vendored SyntaxBNF file.

alternatives is populated only for ::= and :== rules; token rules (::-) and character classes (:::) keep their raw regex text instead, because that is what the generated conformance oracle needs.

Summary

Types

A single element of an alternative.

t()

One rule: its left-hand side, which of the four separators introduced it, and the alternatives parsed out of it.

Types

symbol()

@type symbol() :: {:ref, binary()} | {:literal, binary()}

A single element of an alternative.

{:ref, name} is a <name> reference — it may resolve to either a nonterminal or, when name is defined by a ::- or ::: rule, a terminal. {:literal, text} is a run of literal characters that Tptp.Bnf.Generator splits into terminals against Tptp.Token.spellings/0.

t()

@type t() :: %Tptp.Bnf.Rule{
  alternatives: [[symbol()]] | nil,
  lhs: binary(),
  line: pos_integer(),
  raw: binary(),
  separator: binary()
}

One rule: its left-hand side, which of the four separators introduced it, and the alternatives parsed out of it.