org.kiama.example.prolog

Main

object Main extends SyntaxAnalysis with ParsingREPL[Literal] with PrettyPrinter

Conduct semantic analysis on the Prolog program in the file given as the first command-line argument. If the program is correct, enter an interactive read-eval-print loop (REPL) to read queries. For each query, call the interpreter to evaluate it.

Linear Supertypes
PrettyPrinter, PrettyPrinterBase, ParsingREPL[Literal], StdoutEmitter, ParsingREPLBase[Literal], REPLBase, SyntaxAnalysis, PositionedParserUtilities, ParserUtilities, PackratParsers, RegexParsers, Parsers, AnyRef, Any
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. Hide All
  2. Show all
  1. Main
  2. PrettyPrinter
  3. PrettyPrinterBase
  4. ParsingREPL
  5. StdoutEmitter
  6. ParsingREPLBase
  7. REPLBase
  8. SyntaxAnalysis
  9. PositionedParserUtilities
  10. ParserUtilities
  11. PackratParsers
  12. RegexParsers
  13. Parsers
  14. AnyRef
  15. Any
Visibility
  1. Public
  2. All

Type Members

  1. type Elem = Char

    Definition Classes
    RegexParsers → Parsers
  2. type Indent = Int

    Definition Classes
    PrettyPrinterBase
  3. type Input = Reader[Elem]

    Definition Classes
    Parsers
  4. type Layout = String

    Definition Classes
    PrettyPrinterBase
  5. type Width = Int

    Definition Classes
    PrettyPrinterBase

Value Members

  1. final def !=(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  2. final def !=(arg0: Any): Boolean

    Definition Classes
    Any
  3. final def ##(): Int

    Definition Classes
    AnyRef → Any
  4. final def ==(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  5. final def ==(arg0: Any): Boolean

    Definition Classes
    Any
  6. def OnceParser[T](f: (Input) ⇒ ParseResult[T]): Parser[T] with OnceParser[T]

    Definition Classes
    PositionedParserUtilities → Parsers
  7. def Parser[T](f: (Input) ⇒ ParseResult[T]): Parser[T]

    Definition Classes
    PositionedParserUtilities → Parsers
  8. def accept[U](expected: String, f: PartialFunction[Elem, U]): Parser[U]

    Definition Classes
    Parsers
  9. def accept[ES](es: ES)(implicit arg0: (ES) ⇒ List[Elem]): Parser[List[Elem]]

    Definition Classes
    Parsers
  10. implicit def accept(e: Elem): Parser[Elem]

    Definition Classes
    Parsers
  11. def acceptIf(p: (Elem) ⇒ Boolean)(err: (Elem) ⇒ String): Parser[Elem]

    Definition Classes
    Parsers
  12. def acceptMatch[U](expected: String, f: PartialFunction[Elem, U]): Parser[U]

    Definition Classes
    Parsers
  13. def acceptSeq[ES](es: ES)(implicit arg0: (ES) ⇒ Iterable[Elem]): Parser[List[Elem]]

    Definition Classes
    Parsers
  14. def ampersand: Doc

    Definition Classes
    PrettyPrinterBase
  15. def angles(d: Doc): Doc

    Definition Classes
    PrettyPrinterBase
  16. def any(a: Any): Doc

    Definition Classes
    PrettyPrinterBase
  17. def any: PackratParser[Char]

    Definition Classes
    ParserUtilities
  18. implicit def anyToPrettyPrintable(a: Any): PrettyPrintable

    Definition Classes
    PrettyPrinterBase
  19. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  20. def asterisk: Doc

    Definition Classes
    PrettyPrinterBase
  21. lazy val atom: Parser[String]

    Definition Classes
    SyntaxAnalysis
  22. def atsign: Doc

    Definition Classes
    PrettyPrinterBase
  23. def backquote: Doc

    Definition Classes
    PrettyPrinterBase
  24. def backslash: Doc

    Definition Classes
    PrettyPrinterBase
  25. def braces(d: Doc): Doc

    Definition Classes
    PrettyPrinterBase
  26. def brackets(d: Doc): Doc

    Definition Classes
    PrettyPrinterBase
  27. def caret: Doc

    Definition Classes
    PrettyPrinterBase
  28. def cat(ds: Seq[Doc]): Doc

    Definition Classes
    PrettyPrinterBase
  29. def chainl1[T, U](first: ⇒ Parser[T], p: ⇒ Parser[U], q: ⇒ Parser[(T, U) ⇒ T]): Parser[T]

    Definition Classes
    Parsers
  30. def chainl1[T](p: ⇒ Parser[T], q: ⇒ Parser[(T, T) ⇒ T]): Parser[T]

    Definition Classes
    Parsers
  31. def chainr1[T, U](p: ⇒ Parser[T], q: ⇒ Parser[(T, U) ⇒ U], combine: (T, U) ⇒ U, first: U): Parser[U]

    Definition Classes
    Parsers
  32. implicit def char(c: Char): Doc

    Definition Classes
    PrettyPrinterBase
  33. lazy val clause: Parser[Clause with Serializable]

    Definition Classes
    SyntaxAnalysis
  34. def clone(): AnyRef

    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws()
  35. def colon: Doc

    Definition Classes
    PrettyPrinterBase
  36. def comma: Doc

    Definition Classes
    PrettyPrinterBase
  37. def commit[T](p: ⇒ Parser[T]): Parser[T]

    Definition Classes
    Parsers
  38. implicit def constToTupleFunction2[A, B, R](r: (A, B) ⇒ R): (~[A, B]) ⇒ R

    Definition Classes
    ParserUtilities
  39. implicit def constToTupleFunction3[A, B, C, R](r: (A, B, C) ⇒ R): (~[~[A, B], C]) ⇒ R

    Definition Classes
    ParserUtilities
  40. implicit def constToTupleFunction4[A, B, C, D, R](r: (A, B, C, D) ⇒ R): (~[~[~[A, B], C], D]) ⇒ R

    Definition Classes
    ParserUtilities
  41. implicit def constToTupleFunction5[A, B, C, D, E, R](r: (A, B, C, D, E) ⇒ R): (~[~[~[~[A, B], C], D], E]) ⇒ R

    Definition Classes
    ParserUtilities
  42. implicit def constToTupleFunction6[A, B, C, D, E, F, R](r: (A, B, C, D, E, F) ⇒ R): (~[~[~[~[~[A, B], C], D], E], F]) ⇒ R

    Definition Classes
    ParserUtilities
  43. lazy val constrainedInt: PackratParser[Int]

    Definition Classes
    ParserUtilities
  44. lazy val cut: Parser[Cut]

    Definition Classes
    SyntaxAnalysis
  45. val defaultIndent: Int

    Definition Classes
    PrettyPrinterBase
  46. val defaultWidth: Int

    Definition Classes
    PrettyPrinterBase
  47. def dollar: Doc

    Definition Classes
    PrettyPrinterBase
  48. def dot: Doc

    Definition Classes
    PrettyPrinterBase
  49. def dquote: Doc

    Definition Classes
    PrettyPrinterBase
  50. def dquotes(d: Doc): Doc

    Definition Classes
    PrettyPrinterBase
  51. def elem(e: Elem): Parser[Elem]

    Definition Classes
    Parsers
  52. def elem(kind: String, p: (Elem) ⇒ Boolean): Parser[Elem]

    Definition Classes
    Parsers
  53. val emitter: Emitter

    Definition Classes
    StdoutEmitter
  54. def empty: Doc

    Definition Classes
    PrettyPrinter → PrettyPrinterBase
  55. def enclose(l: Doc, d: Doc, r: Doc): Doc

    Definition Classes
    PrettyPrinterBase
  56. final def eq(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  57. def equal: Doc

    Definition Classes
    PrettyPrinterBase
  58. def equals(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  59. def err(msg: String): Parser[Nothing]

    Definition Classes
    ParserUtilities → Parsers
  60. def exclamation: Doc

    Definition Classes
    PrettyPrinterBase
  61. def failure(msg: String): Parser[Nothing]

    Definition Classes
    ParserUtilities → Parsers
  62. def fillcat(ds: Seq[Doc]): Doc

    Definition Classes
    PrettyPrinterBase
  63. def fillsep(ds: Seq[Doc], sep: Doc): Doc

    Definition Classes
    PrettyPrinterBase
  64. def fillsep(ds: Seq[Doc]): Doc

    Definition Classes
    PrettyPrinterBase
  65. def finalize(): Unit

    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws()
  66. def forwslash: Doc

    Definition Classes
    PrettyPrinterBase
  67. final def getClass(): java.lang.Class[_]

    Definition Classes
    AnyRef → Any
  68. def group(d: Doc): Doc

    Definition Classes
    PrettyPrinter → PrettyPrinterBase
  69. def guard[T](p: ⇒ Parser[T]): Parser[T]

    Definition Classes
    Parsers
  70. def handleWhiteSpace(in: Input): Int

    Definition Classes
    ParserUtilities
  71. def handleWhiteSpace(source: CharSequence, offset: Int): Int

    Attributes
    protected
    Definition Classes
    RegexParsers
  72. def hash: Doc

    Definition Classes
    PrettyPrinterBase
  73. def hashCode(): Int

    Definition Classes
    AnyRef → Any
  74. def hcat(ds: Seq[Doc]): Doc

    Definition Classes
    PrettyPrinterBase
  75. def hsep(ds: Seq[Doc], sep: Doc): Doc

    Definition Classes
    PrettyPrinterBase
  76. def hsep(ds: Seq[Doc]): Doc

    Definition Classes
    PrettyPrinterBase
  77. def ignoreWhitespaceLines: Boolean

    Definition Classes
    REPLBase
  78. lazy val integer: Parser[Integer]

    Definition Classes
    SyntaxAnalysis
  79. final def isInstanceOf[T0]: Boolean

    Definition Classes
    Any
  80. def keywords(ext: Regex, kws: List[String]): Parser[String]

    Definition Classes
    ParserUtilities
  81. def langle: Doc

    Definition Classes
    PrettyPrinterBase
  82. var lastNoSuccess: NoSuccess

    Definition Classes
    Parsers
  83. def lbrace: Doc

    Definition Classes
    PrettyPrinterBase
  84. def lbracket: Doc

    Definition Classes
    PrettyPrinterBase
  85. def line: Doc

    Definition Classes
    PrettyPrinter → PrettyPrinterBase
  86. def linebreak: Doc

    Definition Classes
    PrettyPrinter → PrettyPrinterBase
  87. def list[T](l: List[T], prefix: String, elemToDoc: (T) ⇒ Doc, sep: Doc, sepfn: (Seq[Doc], Doc) ⇒ Doc): Doc

    Definition Classes
    PrettyPrinterBase
  88. lazy val list: Parser[Literal]

    Definition Classes
    SyntaxAnalysis
  89. lazy val listterms: PackratParser[Literal]

    Definition Classes
    SyntaxAnalysis
  90. implicit def literal(s: String): Parser[String]

    Definition Classes
    RegexParsers
  91. lazy val literal: PackratParser[Literal]

    Definition Classes
    SyntaxAnalysis
  92. lazy val literals: Parser[List[Literal]]

    Definition Classes
    SyntaxAnalysis
  93. def log[T](p: ⇒ Parser[T])(name: String): Parser[T]

    Definition Classes
    Parsers
  94. def lparen: Doc

    Definition Classes
    PrettyPrinterBase
  95. def lsep(ds: Seq[Doc], sep: Doc): Doc

    Definition Classes
    PrettyPrinterBase
  96. def lsep2(ds: Seq[Doc], sep: Doc): Doc

    Definition Classes
    PrettyPrinterBase
  97. def lterm(ds: Seq[Doc], term: Doc): Doc

    Definition Classes
    PrettyPrinterBase
  98. def main(args: Array[String]): Unit

    Definition Classes
    Main → REPLBase
  99. def memo[T](p: Parser[T]): PackratParser[T]

    Definition Classes
    PackratParsers
  100. def minus: Doc

    Definition Classes
    PrettyPrinterBase
  101. def mkList[T]: (~[T, List[T]]) ⇒ List[T]

    Definition Classes
    Parsers
  102. final def ne(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  103. def nest(d: Doc, j: Indent): Doc

    Definition Classes
    PrettyPrinter → PrettyPrinterBase
  104. def not[T](p: ⇒ Parser[T]): Parser[Unit]

    Definition Classes
    Parsers
  105. final def notify(): Unit

    Definition Classes
    AnyRef
  106. final def notifyAll(): Unit

    Definition Classes
    AnyRef
  107. def opt[T](p: ⇒ Parser[T]): Parser[Option[T]]

    Definition Classes
    Parsers
  108. def parens(d: Doc): Doc

    Definition Classes
    PrettyPrinterBase
  109. def parse[T](p: Parser[T], in: Reader): ParseResult[T]

    Definition Classes
    RegexParsers
  110. def parse[T](p: Parser[T], in: CharSequence): ParseResult[T]

    Definition Classes
    RegexParsers
  111. def parse[T](p: Parser[T], in: Reader[Char]): ParseResult[T]

    Definition Classes
    RegexParsers
  112. def parseAll[T](p: Parser[T], in: CharSequence): ParseResult[T]

    Definition Classes
    RegexParsers
  113. def parseAll[T](p: Parser[T], in: Reader): ParseResult[T]

    Definition Classes
    RegexParsers
  114. def parseAll[T](p: Parser[T], in: Reader[Char]): ParseResult[T]

    Definition Classes
    RegexParsers
  115. def parseAndPosition[T](f: (Input) ⇒ ParseResult[T], in: Input): ParseResult[T]

    Definition Classes
    PositionedParserUtilities
  116. implicit def parseResultToTuple2[A, B](p: Parser[~[A, B]]): PackratParser[(A, B)]

    Definition Classes
    ParserUtilities
  117. implicit def parseResultToTuple3[A, B, C](p: Parser[~[~[A, B], C]]): PackratParser[(A, B, C)]

    Definition Classes
    ParserUtilities
  118. implicit def parseResultToTuple4[A, B, C, D](p: Parser[~[~[~[A, B], C], D]]): PackratParser[(A, B, C, D)]

    Definition Classes
    ParserUtilities
  119. implicit def parseResultToTuple5[A, B, C, D, E](p: Parser[~[~[~[~[A, B], C], D], E]]): PackratParser[(A, B, C, D, E)]

    Definition Classes
    ParserUtilities
  120. implicit def parseResultToTuple6[A, B, C, D, E, F](p: Parser[~[~[~[~[~[A, B], C], D], E], F]]): PackratParser[(A, B, C, D, E, F)]

    Definition Classes
    ParserUtilities
  121. def parseString[T](parser: Parser[T], str: String): Either[T, String]

    Definition Classes
    ParserUtilities
  122. lazy val parser: PackratParser[Program]

    Definition Classes
    SyntaxAnalysis
  123. implicit def parser2packrat[T](p: ⇒ Parser[T]): PackratParser[T]

    Definition Classes
    PackratParsers
  124. def percent: Doc

    Definition Classes
    PrettyPrinterBase
  125. def phrase[T](p: Parser[T]): PackratParser[T]

    Definition Classes
    PackratParsers → Parsers
  126. def plist(l: List[PrettyPrintable], prefix: String, elemToDoc: (PrettyPrintable) ⇒ Doc, sep: Doc, sepfn: (Seq[Doc], Doc) ⇒ Doc): Doc

    Definition Classes
    PrettyPrinterBase
  127. def plus: Doc

    Definition Classes
    PrettyPrinterBase
  128. def positioned[T <: Positional](p: ⇒ Parser[T]): Parser[T]

    Definition Classes
    RegexParsers → Parsers
  129. def pretty(d: Doc, w: Width): Layout

    Definition Classes
    PrettyPrinter → PrettyPrinterBase
  130. def pretty(p: PrettyPrintable): Layout

    Definition Classes
    PrettyPrinterBase
  131. def pretty_any(a: Any): Layout

    Definition Classes
    PrettyPrinterBase
  132. def process(querytree: Literal): Unit

    Process a query by passing it and the program to the interpreter.

    Process a query by passing it and the program to the interpreter.

    Definition Classes
    Main → ParsingREPLBase
  133. def processline(line: String): Unit

    Definition Classes
    ParsingREPLBase → REPLBase
  134. def processprogram(tree: Program): Boolean

    Process the program by analysing it to check for semantic errors.

    Process the program by analysing it to check for semantic errors. If any messages are produced, print them and return false. Otherwise, save the tree for the interpreter and return true.

  135. lazy val program: Parser[Program]

    Definition Classes
    SyntaxAnalysis
  136. var programtree: Program

    If the program is correct, this is the tree representing it.

    If the program is correct, this is the tree representing it. Needed so that the process method can access it.

  137. val prompt: String

    The prompt to print before each line of input is read.

    The prompt to print before each line of input is read.

    Definition Classes
    Main → REPLBase
  138. lazy val query: Parser[Literal]

    Definition Classes
    SyntaxAnalysis
  139. def question: Doc

    Definition Classes
    PrettyPrinterBase
  140. def rangle: Doc

    Definition Classes
    PrettyPrinterBase
  141. def rbrace: Doc

    Definition Classes
    PrettyPrinterBase
  142. def rbracket: Doc

    Definition Classes
    PrettyPrinterBase
  143. implicit def regex(r: Regex): Parser[String]

    Definition Classes
    RegexParsers
  144. def regexnows(r: Regex): Parser[String]

    Definition Classes
    ParserUtilities
  145. def rep[T](p: ⇒ Parser[T]): Parser[List[T]]

    Definition Classes
    Parsers
  146. def rep1[T](first: ⇒ Parser[T], p0: ⇒ Parser[T]): Parser[List[T]]

    Definition Classes
    Parsers
    Annotations
    @migration
    Migration

    (Changed in version 2.9.0) The p0 call-by-name arguments is evaluated at most once per constructed Parser object, instead of on every need that arises during parsing.

  147. def rep1[T](p: ⇒ Parser[T]): Parser[List[T]]

    Definition Classes
    Parsers
  148. def rep1sep[T](p: ⇒ Parser[T], q: ⇒ Parser[Any]): Parser[List[T]]

    Definition Classes
    Parsers
  149. def repN[T](num: Int, p: ⇒ Parser[T]): Parser[List[T]]

    Definition Classes
    Parsers
  150. def repsep[T](p: ⇒ Parser[T], q: ⇒ Parser[Any]): Parser[List[T]]

    Definition Classes
    Parsers
  151. def result[T](v: ⇒ T): Parser[T]

    Definition Classes
    ParserUtilities
  152. def rparen: Doc

    Definition Classes
    PrettyPrinterBase
  153. def semi: Doc

    Definition Classes
    PrettyPrinterBase
  154. def sep(ds: Seq[Doc]): Doc

    Definition Classes
    PrettyPrinterBase
  155. def setup(args: Array[String]): Boolean

    Definition Classes
    REPLBase
  156. def skipWhitespace: Boolean

    Definition Classes
    RegexParsers
  157. def softbreak: Doc

    Definition Classes
    PrettyPrinterBase
  158. def softline: Doc

    Definition Classes
    PrettyPrinterBase
  159. def space: Doc

    Definition Classes
    PrettyPrinterBase
  160. def spaces(n: Int): Doc

    Definition Classes
    PrettyPrinterBase
  161. def squote: Doc

    Definition Classes
    PrettyPrinterBase
  162. def squotes(d: Doc): Doc

    Definition Classes
    PrettyPrinterBase
  163. def ssep(ds: Seq[Doc], sep: Doc): Doc

    Definition Classes
    PrettyPrinterBase
  164. val start: Parser[Literal]

    The parser to use to parse each line of interactive input.

    The parser to use to parse each line of interactive input. We will read queries, which are just literals followed by a period.

    Definition Classes
    Main → ParsingREPLBase
  165. def sterm(ds: Seq[Doc], term: Doc): Doc

    Definition Classes
    PrettyPrinterBase
  166. def string(s: String): Doc

    Definition Classes
    PrettyPrinterBase
  167. def stringToInt(s: String): Either[Int, String]

    Definition Classes
    ParserUtilities
  168. def success[T](v: T): Parser[T]

    Definition Classes
    Parsers
  169. def surround(d: Doc, b: Doc): Doc

    Definition Classes
    PrettyPrinterBase
  170. final def synchronized[T0](arg0: ⇒ T0): T0

    Definition Classes
    AnyRef
  171. lazy val term: Parser[Term]

    Definition Classes
    SyntaxAnalysis
  172. lazy val terms: Parser[List[Term]]

    Definition Classes
    SyntaxAnalysis
  173. implicit def text(t: String): Doc

    Definition Classes
    PrettyPrinter → PrettyPrinterBase
  174. def tilde: Doc

    Definition Classes
    PrettyPrinterBase
  175. def toString(): String

    Definition Classes
    AnyRef → Any
  176. def underscore: Doc

    Definition Classes
    PrettyPrinterBase
  177. def value(v: Any): Doc

    Definition Classes
    PrettyPrinterBase
  178. lazy val varr: Parser[String]

    Definition Classes
    SyntaxAnalysis
  179. def vcat(ds: Seq[Doc]): Doc

    Definition Classes
    PrettyPrinterBase
  180. def verticalbar: Doc

    Definition Classes
    PrettyPrinterBase
  181. def vsep(ds: Seq[Doc], sep: Doc): Doc

    Definition Classes
    PrettyPrinterBase
  182. def vsep(ds: Seq[Doc]): Doc

    Definition Classes
    PrettyPrinterBase
  183. final def wait(): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws()
  184. final def wait(arg0: Long, arg1: Int): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws()
  185. final def wait(arg0: Long): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws()
  186. val whiteSpace: Regex

    Attributes
    protected
    Definition Classes
    RegexParsers
  187. def wrap[T, U](p: ⇒ Parser[T], f: (T) ⇒ Either[U, String]): Parser[U]

    Definition Classes
    ParserUtilities

Deprecated Value Members

  1. def product(p: Any): Doc

    Definition Classes
    PrettyPrinterBase
    Annotations
    @deprecated
    Deprecated

    (Since version 1.2.1) Use PrettyPrinter.any instead.

Inherited from PrettyPrinter

Inherited from PrettyPrinterBase

Inherited from ParsingREPL[Literal]

Inherited from StdoutEmitter

Inherited from ParsingREPLBase[Literal]

Inherited from REPLBase

Inherited from SyntaxAnalysis

Inherited from PositionedParserUtilities

Inherited from ParserUtilities

Inherited from PackratParsers

Inherited from RegexParsers

Inherited from Parsers

Inherited from AnyRef

Inherited from Any