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], REPL, SyntaxAnalysis, PositionedParserUtilities, ParserUtilities, PackratParsers, RegexParsers, Parsers, AnyRef, Any
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. Main
  2. PrettyPrinter
  3. PrettyPrinterBase
  4. ParsingREPL
  5. REPL
  6. SyntaxAnalysis
  7. PositionedParserUtilities
  8. ParserUtilities
  9. PackratParsers
  10. RegexParsers
  11. Parsers
  12. AnyRef
  13. Any
  1. Hide All
  2. Show all
Learn more about member selection
Visibility
  1. Public
  2. All

Type Members

  1. class Doc extends ((output.PrettyPrinter.Indent, output.PrettyPrinter.Width)) ⇒ ((Int, Queue[(Int, (Boolean) ⇒ ((Int) ⇒ output.PrettyPrinter.Layout) ⇒ (Int) ⇒ output.PrettyPrinter.Layout)]) ⇒ (Int) ⇒ output.PrettyPrinter.Layout) ⇒ (Int, Queue[(Int, (Boolean) ⇒ ((Int) ⇒ output.PrettyPrinter.Layout) ⇒ (Int) ⇒ output.PrettyPrinter.Layout)]) ⇒ (Int) ⇒ output.PrettyPrinter.Layout with output.PrettyPrinter.DocOps

    Definition Classes
    PrettyPrinter → PrettyPrinterBase
  2. trait DocOps extends AnyRef

    Definition Classes
    PrettyPrinterBase
  3. type Elem = Char

    Definition Classes
    RegexParsers → Parsers
  4. case class Error extends NoSuccess with Product with Serializable

    Definition Classes
    Parsers
  5. case class Failure extends NoSuccess with Product with Serializable

    Definition Classes
    Parsers
  6. type Indent = Int

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

    Definition Classes
    Parsers
  8. type Layout = String

    Definition Classes
    PrettyPrinterBase
  9. sealed abstract class NoSuccess extends ParseResult[Nothing]

    Definition Classes
    Parsers
  10. trait OnceParser[+T] extends Parser[T]

    Definition Classes
    Parsers
  11. abstract class PackratParser[+T] extends scala.util.parsing.combinator.PackratParsers.Parser[T]

    Definition Classes
    PackratParsers
  12. class PackratReader[+T] extends Reader[T]

    Definition Classes
    PackratParsers
  13. sealed abstract class ParseResult[+T] extends AnyRef

    Definition Classes
    Parsers
  14. abstract class Parser[+T] extends (Input) ⇒ ParseResult[T]

    Definition Classes
    Parsers
  15. trait PrettyPrintable extends AnyRef

    Definition Classes
    PrettyPrinterBase
  16. case class Success[+T] extends ParseResult[T] with Product with Serializable

    Definition Classes
    Parsers
  17. type Width = Int

    Definition Classes
    PrettyPrinterBase
  18. case class ~[+a, +b] extends Product with Serializable

    Definition Classes
    Parsers

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 angles(d: Doc): Doc

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

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

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

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

    Definition Classes
    Any
  19. lazy val atom: Parser[String]

    Definition Classes
    SyntaxAnalysis
  20. def backslash: Doc

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

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

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

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

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

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

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

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

    Definition Classes
    SyntaxAnalysis
  29. def clone(): AnyRef

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

    Definition Classes
    PrettyPrinterBase
  31. def comma: Doc

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

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

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

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

    Definition Classes
    ParserUtilities
  36. 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
  37. 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
  38. lazy val constrainedInt: PackratParser[Int]

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

    Definition Classes
    SyntaxAnalysis
  40. val defaultIndent: Int

    Definition Classes
    PrettyPrinterBase
  41. val defaultWidth: Int

    Definition Classes
    PrettyPrinterBase
  42. def dot: Doc

    Definition Classes
    PrettyPrinterBase
  43. def dquote: Doc

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

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

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

    Definition Classes
    Parsers
  47. def empty: Doc

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

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

    Definition Classes
    AnyRef
  50. def equal: Doc

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

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

    Definition Classes
    ParserUtilities → Parsers
  53. def failure(msg: String): Parser[Nothing]

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

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

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

    Definition Classes
    PrettyPrinterBase
  57. def finalize(): Unit

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

    Definition Classes
    PrettyPrinterBase
  59. final def getClass(): Class[_]

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

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

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

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

    Attributes
    protected
    Definition Classes
    RegexParsers
  64. def hashCode(): Int

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

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

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

    Definition Classes
    PrettyPrinterBase
  68. lazy val integer: Parser[Integer]

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

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

    Definition Classes
    ParserUtilities
  71. def langle: Doc

    Definition Classes
    PrettyPrinterBase
  72. def lbrace: Doc

    Definition Classes
    PrettyPrinterBase
  73. def lbracket: Doc

    Definition Classes
    PrettyPrinterBase
  74. def line: Doc

    Definition Classes
    PrettyPrinter → PrettyPrinterBase
  75. def linebreak: Doc

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

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

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

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

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

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

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

    Definition Classes
    Parsers
  83. def lparen: Doc

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

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

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

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

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

    Definition Classes
    PackratParsers
  89. def mkList[T]: (~[T, List[T]]) ⇒ List[T]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Definition Classes
    ParserUtilities
  108. 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
  109. def parseString[T](parser: Parser[T], str: String): Either[T, String]

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

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

    Definition Classes
    PackratParsers
  112. def phrase[T](p: Parser[T]): PackratParser[T]

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

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

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

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

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

    Definition Classes
    PrettyPrinterBase
  118. 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 → ParsingREPL
  119. def processline(line: String): Unit

    Definition Classes
    ParsingREPL → REPL
  120. 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.

  121. lazy val program: Parser[Program]

    Definition Classes
    SyntaxAnalysis
  122. 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.

  123. def 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 → REPL
  124. lazy val query: Parser[Literal]

    Definition Classes
    SyntaxAnalysis
  125. def rangle: Doc

    Definition Classes
    PrettyPrinterBase
  126. def rbrace: Doc

    Definition Classes
    PrettyPrinterBase
  127. def rbracket: Doc

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

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

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

    Definition Classes
    Parsers
  131. 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.

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

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

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

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

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

    Definition Classes
    ParserUtilities
  137. def rparen: Doc

    Definition Classes
    PrettyPrinterBase
  138. def semi: Doc

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

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

    Definition Classes
    REPL
  141. def skipWhitespace: Boolean

    Definition Classes
    RegexParsers
  142. def softbreak: Doc

    Definition Classes
    PrettyPrinterBase
  143. def softline: Doc

    Definition Classes
    PrettyPrinterBase
  144. def space: Doc

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

    Definition Classes
    PrettyPrinterBase
  146. def squote: Doc

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

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

    Definition Classes
    PrettyPrinterBase
  149. 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 → ParsingREPL
  150. def sterm(ds: Seq[Doc], term: Doc): Doc

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

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

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

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

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

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

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

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

    Definition Classes
    PrettyPrinter → PrettyPrinterBase
  159. def toString(): String

    Definition Classes
    AnyRef → Any
  160. def value(v: Any): Doc

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

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

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

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

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

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

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

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

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

    Definition Classes
    ParserUtilities

Deprecated Value Members

  1. def lastNoSuccess: NoSuccess

    Definition Classes
    Parsers
    Annotations
    @deprecated
    Deprecated

    (Since version 2.10.0) lastNoSuccess was not thread-safe and will be removed in 2.11.0

  2. def lastNoSuccess_=(x: NoSuccess): Unit

    Definition Classes
    Parsers
    Annotations
    @deprecated
    Deprecated

    (Since version 2.10.0) lastNoSuccess was not thread-safe and will be removed in 2.11.0

  3. 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 REPL

Inherited from SyntaxAnalysis

Inherited from PositionedParserUtilities

Inherited from ParserUtilities

Inherited from PackratParsers

Inherited from RegexParsers

Inherited from Parsers

Inherited from AnyRef

Inherited from Any

No Group