trait A2bPhases extends FrontEndDriver with SyntaxAnalyser with SourcePrettyPrinter with NameAnalyser with TypeAnalyser
- Alphabetic
- By Inheritance
- A2bPhases
- TypeAnalyser
- TypeAnalyser
- TypeAnalyser
- NameAnalyser
- NameAnalyser
- SymbolTable
- SymbolTable
- Environments
- Analyser
- SourcePrettyPrinter
- SourcePrettyPrinter
- SourcePrettyPrinter
- SourcePrettyPrinter
- ParenPrettyPrinter
- PrettyPrinter
- PrettyPrinterBase
- SyntaxAnalyser
- SyntaxAnalyser
- SyntaxAnalyser
- SyntaxAnalyser
- WhitespacePositionedParserUtilities
- PositionedParserUtilities
- WhitespaceParser
- ParserUtilities
- PackratParsers
- FrontEndDriver
- CompilerWithConfig
- RegexParsers
- Parsers
- CompilerBase
- Profiler
- Profiler
- Values
- Driver
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Type Members
-
trait
Builtin
extends Named
Marker trait for all built-in entities.
Marker trait for all built-in entities.
- Definition Classes
- SymbolTable
-
case class
BuiltinType
(ident: String) extends Type with Named with Builtin with Product with Serializable
A built-in type with an implicit definition that the compiler must have special knowledge about.
A built-in type with an implicit definition that the compiler must have special knowledge about. This mechanism is necessary since the built-in types cannot be defined using source concepts.
- Definition Classes
- SymbolTable
-
case class
Constant
(ident: String, decl: ConstDecl) extends Entity with NamedEntity with Product with Serializable
A user-defined constant entity represented by a constant declaration.
A user-defined constant entity represented by a constant declaration.
- Definition Classes
- SymbolTable
-
case class
IntegerValue
(ident: String, tipe: Type, value: Int) extends Entity with NamedEntity with Builtin with Product with Serializable
A built-in value of some type that is represented by a particular integer value.
A built-in value of some type that is represented by a particular integer value. The type does not have to be INTEGER. In other words, this value cannot be defined using a constant declaration so the compiler has to have special knowledge of them.
- Definition Classes
- SymbolTable
-
case class
Module
(ident: String, decl: ModuleDecl) extends Entity with NamedEntity with Product with Serializable
A user-defined module represented by a module declaration.
A user-defined module represented by a module declaration.
- Definition Classes
- SymbolTable
-
abstract
class
Type
extends Entity
An entity representing by a user-provided type declaration.
An entity representing by a user-provided type declaration.
- Definition Classes
- SymbolTable
-
case class
UserType
(ident: String, tipe: TypeDecl) extends Type with Named with Product with Serializable
A user-defined type.
A user-defined type.
- Definition Classes
- SymbolTable
-
case class
Variable
(ident: String, tipe: TypeDef) extends Entity with NamedEntity with Product with Serializable
A variable entity including a reference to its types' definition.
A variable entity including a reference to its types' definition.
- Definition Classes
- SymbolTable
-
case class
Child extends Step with Product with Serializable
- Definition Classes
- Profiler
-
case class
Dep extends Product with Serializable
- Definition Classes
- Profiler
-
class
Doc extends ((output.PrettyPrinter.Indent, output.PrettyPrinter.Width)) ⇒ ((Int, Queue[(Int, (Boolean) ⇒ ((Int) ⇒ Trampoline[Seq[String]]) ⇒ Trampoline[(Int) ⇒ Trampoline[Seq[String]]])]) ⇒ Trampoline[(Int) ⇒ Trampoline[Seq[String]]]) ⇒ Trampoline[(Int, Queue[(Int, (Boolean) ⇒ ((Int) ⇒ Trampoline[Seq[String]]) ⇒ Trampoline[(Int) ⇒ Trampoline[Seq[String]]])]) ⇒ Trampoline[(Int) ⇒ Trampoline[Seq[String]]]] with output.PrettyPrinter.DocOps
- Definition Classes
- PrettyPrinter
-
trait
DocOps extends AnyRef
- Definition Classes
- PrettyPrinterBase
-
type
Elem = Char
- Definition Classes
- RegexParsers → Parsers
-
type
Environment = List[Scope]
- Definition Classes
- Environments
-
case class
Error extends NoSuccess with Product with Serializable
- Definition Classes
- Parsers
-
case class
Failure extends NoSuccess with Product with Serializable
- Definition Classes
- Parsers
-
type
Indent = Int
- Definition Classes
- PrettyPrinterBase
-
type
Input = Reader[Elem]
- Definition Classes
- Parsers
-
type
Layout = String
- Definition Classes
- PrettyPrinterBase
-
class
Marker extends AnyRef
- Definition Classes
- PositionedParserUtilities
-
trait
Named extends AnyRef
- Definition Classes
- Environments
-
trait
NamedEntity extends Entity with Named
- Definition Classes
- Environments
-
sealed abstract
class
NoSuccess extends ParseResult[Nothing]
- Definition Classes
- Parsers
-
trait
OnceParser[+T] extends Parser[T]
- Definition Classes
- Parsers
-
abstract
class
PackratParser[+T] extends scala.util.parsing.combinator.PackratParsers.Parser[T]
- Definition Classes
- PackratParsers
-
class
PackratReader[+T] extends Reader[T]
- Definition Classes
- PackratParsers
-
sealed abstract
class
ParseResult[+T] extends AnyRef
- Definition Classes
- Parsers
-
abstract
class
Parser[+T] extends (Input) ⇒ ParseResult[T]
- Definition Classes
- Parsers
-
trait
PrettyPrintable extends AnyRef
- Definition Classes
- PrettyPrinterBase
-
case class
Record extends Product with Serializable
- Definition Classes
- Values
-
type
Scope = Map[String, Entity]
- Definition Classes
- Environments
-
abstract
class
Step extends AnyRef
- Definition Classes
- Profiler
-
case class
Success[+T] extends ParseResult[T] with Product with Serializable
- Definition Classes
- Parsers
-
type
Width = Int
- Definition Classes
- PrettyPrinterBase
-
case class
~[+a, +b] extends Product with Serializable
- Definition Classes
- Parsers
Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
OnceParser[T](f: (Input) ⇒ ParseResult[T]): Parser[T] with OnceParser[T]
- Definition Classes
- PositionedParserUtilities → Parsers
-
def
Parser[T](f: (Input) ⇒ ParseResult[T]): Parser[T]
- Definition Classes
- PositionedParserUtilities → Parsers
-
def
accept[U](expected: String, f: PartialFunction[Elem, U]): Parser[U]
- Definition Classes
- Parsers
-
def
accept[ES](es: ES)(implicit arg0: (ES) ⇒ List[Elem]): Parser[List[Elem]]
- Definition Classes
- Parsers
-
implicit
def
accept(e: Elem): Parser[Elem]
- Definition Classes
- Parsers
-
def
acceptIf(p: (Elem) ⇒ Boolean)(err: (Elem) ⇒ String): Parser[Elem]
- Definition Classes
- Parsers
-
def
acceptMatch[U](expected: String, f: PartialFunction[Elem, U]): Parser[U]
- Definition Classes
- Parsers
-
def
acceptSeq[ES](es: ES)(implicit arg0: (ES) ⇒ Iterable[Elem]): Parser[List[Elem]]
- Definition Classes
- Parsers
-
def
align(d: Doc): Doc
- Definition Classes
- PrettyPrinterBase
-
def
ampersand: Doc
- Definition Classes
- PrettyPrinterBase
-
def
angles(d: Doc): Doc
- Definition Classes
- PrettyPrinterBase
-
def
any(a: Any): Doc
- Definition Classes
- PrettyPrinterBase
-
def
any: PackratParser[Char]
- Definition Classes
- ParserUtilities
-
implicit
def
anyToPrettyPrintable(a: Any): PrettyPrintable
- Definition Classes
- PrettyPrinterBase
-
def
artefact: String
The name of this artefact.
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
lazy val
assignment: Parser[Assignment]
- Definition Classes
- SyntaxAnalyser
-
def
asterisk: Doc
- Definition Classes
- PrettyPrinterBase
-
def
atsign: Doc
- Definition Classes
- PrettyPrinterBase
-
def
backquote: Doc
- Definition Classes
- PrettyPrinterBase
-
def
backslash: Doc
- Definition Classes
- PrettyPrinterBase
-
lazy val
basetype: (Expression) ⇒ Type
The actual type of an expression following type aliases.
The actual type of an expression following type aliases.
- Definition Classes
- TypeAnalyser
-
lazy val
block: Parser[Block]
- Definition Classes
- SyntaxAnalyser
-
def
blockToDoc(b: Block, beginend: Boolean = false): Doc
Pretty-print a block, omitting the BEGIN if there are no statements.
Pretty-print a block, omitting the BEGIN if there are no statements. Add the possibility of declarations to the previous level.
- Definition Classes
- SourcePrettyPrinter → SourcePrettyPrinter
-
lazy val
booleanType: BuiltinType
Built-in Boolean type.
Built-in Boolean type.
- Definition Classes
- SymbolTable
-
def
braces(d: Doc): Doc
- Definition Classes
- PrettyPrinterBase
-
def
bracket(inner: PrettyOperatorExpression, outer: PrettyOperatorExpression, side: Side): Doc
- Definition Classes
- ParenPrettyPrinter
-
def
brackets(d: Doc): Doc
- Definition Classes
- PrettyPrinterBase
-
def
caret: Doc
- Definition Classes
- PrettyPrinterBase
-
lazy val
caseStatement: Parser[CaseStatement]
- Definition Classes
- SyntaxAnalyser
-
def
caseToDoc(s: CaseStatement): Doc
- Definition Classes
- SourcePrettyPrinter
-
lazy val
cases: Parser[List[Case]]
- Definition Classes
- SyntaxAnalyser
-
def
casesToDoc(l: Seq[Case]): Doc
- Definition Classes
- SourcePrettyPrinter
-
def
cat(ds: Seq[Doc]): Doc
- Definition Classes
- PrettyPrinterBase
-
def
chainl1[T, U](first: ⇒ Parser[T], p: ⇒ Parser[U], q: ⇒ Parser[(T, U) ⇒ T]): Parser[T]
- Definition Classes
- Parsers
-
def
chainl1[T](p: ⇒ Parser[T], q: ⇒ Parser[(T, T) ⇒ T]): Parser[T]
- Definition Classes
- Parsers
-
def
chainr1[T, U](p: ⇒ Parser[T], q: ⇒ Parser[(T, U) ⇒ U], combine: (T, U) ⇒ U, first: U): Parser[U]
- Definition Classes
- Parsers
-
implicit
def
char(c: Char): Doc
- Definition Classes
- PrettyPrinterBase
-
def
checkFor(record: Record, dim: Dimension, eventtype: String, needed: Dimension)(f: (Value) ⇒ Value): Value
- Definition Classes
- Values
-
def
clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
def
colon: Doc
- Definition Classes
- PrettyPrinterBase
-
def
column(f: (Int) ⇒ Doc): Doc
- Definition Classes
- PrettyPrinter → PrettyPrinterBase
-
def
comma: Doc
- Definition Classes
- PrettyPrinterBase
-
lazy val
comment: PackratParser[Any]
- Definition Classes
- SyntaxAnalyser
-
def
commit[T](p: ⇒ Parser[T]): Parser[T]
- Definition Classes
- Parsers
-
lazy val
condition: Parser[Condition with Serializable]
- Definition Classes
- SyntaxAnalyser
-
lazy val
conditions: Parser[List[Condition with Serializable]]
- Definition Classes
- SyntaxAnalyser
-
implicit
def
constToTupleFunction2[A, B, R](r: (A, B) ⇒ R): (~[A, B]) ⇒ R
- Definition Classes
- ParserUtilities
-
implicit
def
constToTupleFunction3[A, B, C, R](r: (A, B, C) ⇒ R): (~[~[A, B], C]) ⇒ R
- Definition Classes
- ParserUtilities
-
implicit
def
constToTupleFunction4[A, B, C, D, R](r: (A, B, C, D) ⇒ R): (~[~[~[A, B], C], D]) ⇒ R
- Definition Classes
- ParserUtilities
-
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
-
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
-
lazy val
constdecl: Parser[ConstDecl]
- Definition Classes
- SyntaxAnalyser
-
lazy val
constdeclsection: Parser[List[ConstDecl]]
- Definition Classes
- SyntaxAnalyser
-
lazy val
constrainedInt: PackratParser[Int]
- Definition Classes
- ParserUtilities
-
def
consumeast(ast: ModuleDecl, config: Oberon0Config): Unit
Consume the AST.
Consume the AST. For example, translate it to something else. By default, do nothing.
- Definition Classes
- FrontEndDriver
-
def
createConfig(args: Seq[String], output: Emitter = new OutputEmitter, error: Emitter = new ErrorEmitter): Oberon0Config
- Definition Classes
- FrontEndDriver → CompilerBase
-
lazy val
declarations: PackratParser[Seq[Declaration]]
- Definition Classes
- SyntaxAnalyser
-
def
declarationsDef: PackratParser[Seq[Declaration]]
- Definition Classes
- SyntaxAnalyser → SyntaxAnalyser
-
def
declsToDoc(ds: Seq[Declaration]): Doc
- Definition Classes
- SourcePrettyPrinter
-
def
declsection(d: Declaration): String
- Definition Classes
- SourcePrettyPrinter → SourcePrettyPrinter
-
lazy val
decltype: (TypeDecl) ⇒ Type
The built-in type associated with a type declaration.
The built-in type associated with a type declaration.
- Definition Classes
- TypeAnalyser
-
val
defaultIndent: Int
- Definition Classes
- PrettyPrinterBase
-
val
defaultWidth: Int
- Definition Classes
- PrettyPrinterBase
-
def
defenv: Environment
The default environment.
The default environment.
- Definition Classes
- SymbolTable
-
def
defenvPairs: Seq[(String, Entity)]
- Definition Classes
- SymbolTable
-
def
define(env: Environment, i: String, e: Entity): Environment
- Definition Classes
- Environments
-
lazy val
deftype: (TypeDef) ⇒ Type
The type given by a type definition.
The type given by a type definition.
- Definition Classes
- TypeAnalyser
-
def
deftypeDef: (TypeDef) ⇒ Type
- Definition Classes
- TypeAnalyser
-
def
dimValue(record: Record, dim: Dimension): Value
- Definition Classes
- Profiler → Profiler → Values
-
def
dollar: Doc
- Definition Classes
- PrettyPrinterBase
-
def
dot: Doc
- Definition Classes
- PrettyPrinterBase
-
def
dquote: Doc
- Definition Classes
- PrettyPrinterBase
-
def
dquotes(d: Doc): Doc
- Definition Classes
- PrettyPrinterBase
-
def
driver(args: Seq[String]): Unit
- Definition Classes
- CompilerBase
-
def
elem(e: Elem): Parser[Elem]
- Definition Classes
- Parsers
-
def
elem(kind: String, p: (Elem) ⇒ Boolean): Parser[Elem]
- Definition Classes
- Parsers
-
lazy val
elsif: PackratParser[(Expression, Block)]
- Definition Classes
- SyntaxAnalyser
-
lazy val
elsifs: Parser[List[(Expression, Block)]]
- Definition Classes
- SyntaxAnalyser
-
def
empty: Doc
- Definition Classes
- PrettyPrinter → PrettyPrinterBase
-
def
enclose(l: Doc, d: Doc, r: Doc): Doc
- Definition Classes
- PrettyPrinterBase
-
def
encoding: String
- Definition Classes
- CompilerBase
-
def
enter(env: Environment): Environment
- Definition Classes
- Environments
-
lazy val
entity: (Identifier) ⇒ Entity
The program entity referred to by an identifier definition or use.
The program entity referred to by an identifier definition or use. In the case of a definition it's the thing being defined, so define it to be a reference to the declaration. If it's already defined, return a entity that indicates a multiple definition. In the case of a use, it's the thing defined elsewhere that is being referred to here, so look it up in the environment.
- Definition Classes
- NameAnalyser
-
def
entityFromDecl(n: IdnDef, i: String): Entity
The entity for an identifier definition as given by its declaration context.
The entity for an identifier definition as given by its declaration context.
- Definition Classes
- NameAnalyser
-
lazy val
env: Chain[SourceTree, Environment]
The environment containing bindings for all identifiers visible at the given node.
The environment containing bindings for all identifiers visible at the given node. It starts at the module declaration with the default environment. At blocks we enter a nested scope which is removed on exit from the block. At constant and type declarations the left-hand side binding is not in scope on the right-hand side. Each identifier definition just adds its binding to the chain. The envout cases for assignment and expression mean that we don't need to traverse into those constructs, since declarations can't occur there.
- Definition Classes
- NameAnalyser
-
def
envin(in: (SourceTree) ⇒ Environment): ==>[SourceTree, Environment]
- Definition Classes
- NameAnalyser
-
def
envout(out: (SourceTree) ⇒ Environment): ==>[SourceTree, Environment]
- Definition Classes
- NameAnalyser
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equal: Doc
- Definition Classes
- PrettyPrinterBase
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
err(msg: String): Parser[Nothing]
- Definition Classes
- ParserUtilities → Parsers
-
val
errors: (SourceTree) ⇒ Messages
The semantic errors for a tree.
The semantic errors for a tree.
- Definition Classes
- Analyser
-
def
errorsDef(n: SourceTree): Messages
The error checking for this level.
The error checking for this level.
- Definition Classes
- TypeAnalyser → TypeAnalyser → NameAnalyser → Analyser
-
def
exclamation: Doc
- Definition Classes
- PrettyPrinterBase
-
lazy val
expconst: (Expression) ⇒ Boolean
Is an expression expected to be constant or not? Either the expression is the root of an expected constant expression or its parent expression is expected to be constant.
Is an expression expected to be constant or not? Either the expression is the root of an expected constant expression or its parent expression is expected to be constant.
- Definition Classes
- NameAnalyser
-
lazy val
expression: Parser[Expression]
- Definition Classes
- SyntaxAnalyser
-
lazy val
exptype: (Expression) ⇒ Type
The type expected of an expression as defined by its context.
The type expected of an expression as defined by its context.
- Definition Classes
- TypeAnalyser
-
def
exptypeDef: (Expression) ⇒ Type
The type expected of an expression as defined by its context.
The type expected of an expression as defined by its context.
- Definition Classes
- TypeAnalyser → TypeAnalyser → TypeAnalyser
-
lazy val
factor: PackratParser[Expression]
- Definition Classes
- SyntaxAnalyser
-
def
failure(msg: String): Parser[Nothing]
- Definition Classes
- ParserUtilities → Parsers
-
lazy val
falseConstant: IntegerValue
Built-in false constant.
Built-in false constant.
- Definition Classes
- SymbolTable
-
def
fillcat(ds: Seq[Doc]): Doc
- Definition Classes
- PrettyPrinterBase
-
def
fillsep(ds: Seq[Doc], sep: Doc): Doc
- Definition Classes
- PrettyPrinterBase
-
def
fillsep(ds: Seq[Doc]): Doc
- Definition Classes
- PrettyPrinterBase
-
def
finalize(): Unit
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
def
finishReport(): Unit
- Definition Classes
- Values
-
def
folddoc(ds: Seq[Doc], f: (Doc, Doc) ⇒ Doc): Doc
- Definition Classes
- PrettyPrinterBase
-
lazy val
forStatement: Parser[ForStatement]
- Definition Classes
- SyntaxAnalyser
-
def
forToDoc(s: ForStatement): Doc
- Definition Classes
- SourcePrettyPrinter
-
lazy val
forVar: Parser[IdnExp]
- Definition Classes
- SyntaxAnalyser
-
def
forwslash: Doc
- Definition Classes
- PrettyPrinterBase
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
-
def
group(d: Doc): Doc
- Definition Classes
- PrettyPrinter → PrettyPrinterBase
-
def
guard[T](p: ⇒ Parser[T]): Parser[T]
- Definition Classes
- Parsers
-
def
handleWhiteSpace(in: Input): Int
- Definition Classes
- WhitespacePositionedParserUtilities → ParserUtilities
-
def
handleWhiteSpace(source: CharSequence, offset: Int): Int
- Attributes
- protected
- Definition Classes
- RegexParsers
-
def
hang(d: Doc, i: Indent): Doc
- Definition Classes
- PrettyPrinterBase
-
def
hash: Doc
- Definition Classes
- PrettyPrinterBase
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
-
def
hcat(ds: Seq[Doc]): Doc
- Definition Classes
- PrettyPrinterBase
-
def
hsep(ds: Seq[Doc], sep: Doc): Doc
- Definition Classes
- PrettyPrinterBase
-
def
hsep(ds: Seq[Doc]): Doc
- Definition Classes
- PrettyPrinterBase
-
lazy val
ident: Parser[String]
- Definition Classes
- SyntaxAnalyser
-
def
idlistToDoc(ids: Seq[IdnDef]): Doc
- Definition Classes
- SourcePrettyPrinter
-
lazy val
idndef: Parser[IdnDef]
- Definition Classes
- SyntaxAnalyser
-
lazy val
idndeflist: Parser[List[IdnDef]]
- Definition Classes
- SyntaxAnalyser
-
lazy val
idntype: (IdnUse) ⇒ Type
The type of the entity denoted by an identifier use.
The type of the entity denoted by an identifier use.
- Definition Classes
- TypeAnalyser
-
def
idntypeDef: (IdnUse) ⇒ Type
- Definition Classes
- TypeAnalyser
-
lazy val
idnuse: Parser[IdnUse]
- Definition Classes
- SyntaxAnalyser
-
lazy val
ifStatement: Parser[IfStatement]
- Definition Classes
- SyntaxAnalyser
-
def
ifToDoc(s: IfStatement): Doc
- Definition Classes
- SourcePrettyPrinter
-
def
includeTimings: Boolean
- Definition Classes
- Profiler
-
def
indent(d: Doc, i: Indent): Doc
- Definition Classes
- PrettyPrinterBase
-
def
initialiseSemanticAnalysis: Unit
Perform initialisation of semantic analysis that is necessary before processing an AST.
Perform initialisation of semantic analysis that is necessary before processing an AST.
- Definition Classes
- Driver
-
lazy val
integerType: BuiltinType
Built-in integer type.
Built-in integer type.
- Definition Classes
- SymbolTable
-
lazy val
intexp: Parser[IntExp]
- Definition Classes
- SyntaxAnalyser
-
def
isBoolean(e: Type): Boolean
Return true if the given type is Boolean or an unknown type.
Return true if the given type is Boolean or an unknown type.
- Definition Classes
- SymbolTable
-
def
isCompatible(tipe: Type, exptype: Type): Boolean
Compatibility of types.
Compatibility of types. Return true if the type is compatible with the expected type. Unknown types are compatible with any other type. Otherwise, use look up the base types of what we have and compare them.
- Definition Classes
- TypeAnalyser
-
def
isConstant(e: Entity): Boolean
Return true if the entity is erroneous or is a constant.
Return true if the entity is erroneous or is a constant.
- Definition Classes
- SymbolTable
-
def
isDefinedInEnv(env: Environment, i: String): Boolean
- Definition Classes
- Environments
-
def
isDefinedInInner(env: Environment, i: String): Boolean
- Definition Classes
- Environments
-
def
isDefinedInOuter(env: Environment, i: String): Boolean
- Definition Classes
- Environments
-
def
isDefinedInScope(scope: Scope, i: String): Boolean
- Definition Classes
- Environments
-
def
isDefinedInScope(env: Environment, i: String): Boolean
- Definition Classes
- Environments
-
def
isError(e: Entity): Boolean
Return true if the entity is an error, false otherwise.
Return true if the entity is an error, false otherwise.
- Definition Classes
- SymbolTable
-
def
isEventType(record: Record, eventtype: String): Boolean
- Definition Classes
- Values
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
def
isInteger(e: Type): Boolean
Return true if the given type is integer or an unknown type.
Return true if the given type is integer or an unknown type.
- Definition Classes
- SymbolTable
-
def
isLvalue(l: Expression): Boolean
Return true if the expression can legally appear on the left-hand side of an assignment statement.
Return true if the expression can legally appear on the left-hand side of an assignment statement. At this level only allow identifiers of variables or things we don't know anything about. The true default is used so that this computation can be used in redefinitions.
- Definition Classes
- NameAnalyser
-
def
isModule(e: Entity): Boolean
Return true if the entity is erroneous or is a module.
Return true if the entity is erroneous or is a module.
- Definition Classes
- SymbolTable
-
def
isRvalue(r: IdnExp): Boolean
Return true if the identifier is an r-value and hence its value can be used (ie.
Return true if the identifier is an r-value and hence its value can be used (ie. it's erroneous or is a constant, value or variable).
- Definition Classes
- NameAnalyser
-
def
isType(e: Entity): Boolean
Return true if the entity is erroneous or is a type.
Return true if the entity is erroneous or is a type.
- Definition Classes
- SymbolTable
-
def
isVariable(e: Entity): Boolean
Return true if the entity is erroneous or is a variable.
Return true if the entity is erroneous or is a variable.
- Definition Classes
- SymbolTable
-
lazy val
isconst: (Expression) ⇒ Boolean
Is an expression constant or not? Unknown entities are constant.
Is an expression constant or not? Unknown entities are constant. Strictly speaking we only need to support integer expressions here, but we treat Boolean ones as constant in the same way so that we avoid spurious errors. Type analysis will reject Boolean constant expressions anyway.
- Definition Classes
- NameAnalyser
-
lazy val
kase: Parser[Case]
- Definition Classes
- SyntaxAnalyser
-
lazy val
keyword: Parser[String]
- Definition Classes
- SyntaxAnalyser
-
def
keywordStrings: Seq[String]
- Definition Classes
- SyntaxAnalyser → SyntaxAnalyser → SyntaxAnalyser → SyntaxAnalyser
-
def
keywords(ext: Regex, kws: Seq[String]): Parser[String]
- Definition Classes
- ParserUtilities
-
def
langle: Doc
- Definition Classes
- PrettyPrinterBase
- def langlevel: Int
-
def
lbrace: Doc
- Definition Classes
- PrettyPrinterBase
-
def
lbracket: Doc
- Definition Classes
- PrettyPrinterBase
-
def
leave(env: Environment): Environment
- Definition Classes
- Environments
-
lazy val
lhs: PackratParser[Expression]
- Definition Classes
- SyntaxAnalyser
-
def
lhsDef: PackratParser[Expression]
- Definition Classes
- SyntaxAnalyser
-
def
line: Doc
- Definition Classes
- PrettyPrinter → PrettyPrinterBase
-
def
line(repl: Layout): Doc
- Definition Classes
- PrettyPrinter → PrettyPrinterBase
-
def
linebreak: Doc
- Definition Classes
- PrettyPrinter → PrettyPrinterBase
-
def
list[T](l: Seq[T], prefix: String, elemToDoc: (T) ⇒ Doc, sep: Doc, sepfn: (Seq[Doc], Doc) ⇒ Doc): Doc
- Definition Classes
- PrettyPrinterBase
-
implicit
def
literal(s: String): Parser[String]
- Definition Classes
- WhitespaceParser → RegexParsers
-
def
log[T](p: ⇒ Parser[T])(name: String): Parser[T]
- Definition Classes
- Parsers
-
def
lookup(env: Environment, i: String, e: Entity, scope: Boolean): Entity
- Definition Classes
- Environments
-
def
lparen: Doc
- Definition Classes
- PrettyPrinterBase
-
def
lsep(ds: Seq[Doc], sep: Doc): Doc
- Definition Classes
- PrettyPrinterBase
-
def
lsep2(ds: Seq[Doc], sep: Doc): Doc
- Definition Classes
- PrettyPrinterBase
-
def
lterm(ds: Seq[Doc], term: Doc): Doc
- Definition Classes
- PrettyPrinterBase
-
def
main(args: Array[String]): Unit
- Definition Classes
- CompilerBase
-
def
makeast(reader: Reader, filename: String, config: Oberon0Config): Either[ModuleDecl, String]
- Definition Classes
- CompilerWithConfig → CompilerBase
-
def
mark[T](p: Parser[String]): Parser[Marker]
- Definition Classes
- PositionedParserUtilities
-
def
memo[T](p: Parser[T]): PackratParser[T]
- Definition Classes
- PackratParsers
-
def
minus: Doc
- Definition Classes
- PrettyPrinterBase
-
def
mkList[T]: (~[T, List[T]]) ⇒ List[T]
- Definition Classes
- Parsers
-
lazy val
moduledecl: Parser[ModuleDecl]
- Definition Classes
- SyntaxAnalyser
-
val
nameCounter: Counter
- Definition Classes
- Environments
-
lazy val
namedtypedef: Parser[NamedType]
- Definition Classes
- SyntaxAnalyser
-
def
nanoToMs(nano: Long): Long
- Definition Classes
- Profiler
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
nest(d: Doc, j: Indent): Doc
- Definition Classes
- PrettyPrinter → PrettyPrinterBase
-
def
nesting(f: (Int) ⇒ Doc): Doc
- Definition Classes
- PrettyPrinter → PrettyPrinterBase
-
def
noparens(inner: PrettyOperatorExpression, outer: PrettyOperatorExpression, side: Side): Boolean
- Definition Classes
- ParenPrettyPrinter
-
def
not[T](p: ⇒ Parser[T]): Parser[Unit]
- Definition Classes
- Parsers
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
-
def
opt[T](p: ⇒ Parser[T]): Parser[Option[T]]
- Definition Classes
- Parsers
-
def
optSectionToDoc(section: String, optds: Option[Seq[Declaration]]): Doc
- Definition Classes
- SourcePrettyPrinter
-
lazy val
optelse: Parser[Option[Block]]
- Definition Classes
- SyntaxAnalyser
-
def
output(str: String): Unit
- Definition Classes
- Values
-
def
outputln(str: String): Unit
- Definition Classes
- Values
-
def
padto(p: Int, d: Doc): Doc
- Definition Classes
- PrettyPrinterBase
-
def
padtobreak(p: Int, d: Doc): Doc
- Definition Classes
- PrettyPrinterBase
-
def
parens(d: Doc): Doc
- Definition Classes
- PrettyPrinterBase
-
def
parse[T](p: Parser[T], in: Reader): ParseResult[T]
- Definition Classes
- RegexParsers
-
def
parse[T](p: Parser[T], in: CharSequence): ParseResult[T]
- Definition Classes
- RegexParsers
-
def
parse[T](p: Parser[T], in: Reader[Char]): ParseResult[T]
- Definition Classes
- RegexParsers
-
def
parseAll[T](p: Parser[T], in: CharSequence): ParseResult[T]
- Definition Classes
- RegexParsers
-
def
parseAll[T](p: Parser[T], in: Reader): ParseResult[T]
- Definition Classes
- RegexParsers
-
def
parseAll[T](p: Parser[T], in: Reader[Char]): ParseResult[T]
- Definition Classes
- RegexParsers
-
def
parseAndPosition[T](f: (Input) ⇒ ParseResult[T], in: Input): ParseResult[T]
- Definition Classes
- PositionedParserUtilities
-
def
parseProfileOption(value: String): Seq[Dimension]
- Definition Classes
- Profiler
-
implicit
def
parseResultToTuple2[A, B](p: Parser[~[A, B]]): PackratParser[(A, B)]
- Definition Classes
- ParserUtilities
-
implicit
def
parseResultToTuple3[A, B, C](p: Parser[~[~[A, B], C]]): PackratParser[(A, B, C)]
- Definition Classes
- ParserUtilities
-
implicit
def
parseResultToTuple4[A, B, C, D](p: Parser[~[~[~[A, B], C], D]]): PackratParser[(A, B, C, D)]
- Definition Classes
- ParserUtilities
-
implicit
def
parseResultToTuple5[A, B, C, D, E](p: Parser[~[~[~[~[A, B], C], D], E]]): PackratParser[(A, B, C, D, E)]
- Definition Classes
- ParserUtilities
-
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
-
def
parseString[T](parser: Parser[T], str: String): Either[T, String]
- Definition Classes
- ParserUtilities
-
def
parseWhitespace(in: Input): ParseResult[Any]
- Attributes
- protected
- Definition Classes
- WhitespaceParser
-
lazy val
parser: PackratParser[ModuleDecl]
- Definition Classes
- SyntaxAnalyser
-
implicit
def
parser2packrat[T](p: ⇒ Parser[T]): PackratParser[T]
- Definition Classes
- PackratParsers
-
val
parsingWhitespace: Boolean
- Attributes
- protected
- Definition Classes
- WhitespaceParser
-
def
percent: Doc
- Definition Classes
- PrettyPrinterBase
-
def
percent(v: Long, total: Long): String
- Definition Classes
- Profiler
-
def
phrase[T](p: Parser[T]): PackratParser[T]
- Definition Classes
- PackratParsers → Parsers
-
def
plist(l: List[PrettyPrintable], prefix: String, elemToDoc: (PrettyPrintable) ⇒ Doc, sep: Doc, sepfn: (Seq[Doc], Doc) ⇒ Doc): Doc
- Definition Classes
- PrettyPrinterBase
-
def
plus: Doc
- Definition Classes
- PrettyPrinterBase
-
def
positioned[T <: Positional](p: ⇒ Parser[T]): Parser[T]
- Definition Classes
- WhitespaceParser → RegexParsers → Parsers
-
def
pretty(d: Doc, w: Width): Layout
- Definition Classes
- PrettyPrinter → PrettyPrinterBase
-
def
pretty(p: PrettyPrintable): Layout
- Definition Classes
- PrettyPrinterBase
-
def
pretty_any(a: Any): Layout
- Definition Classes
- PrettyPrinterBase
-
def
prettyprint(ast: ModuleDecl): String
- Definition Classes
- CompilerBase
-
def
printDependencyGraph(record: Record, dim: Dimension): Unit
- Definition Classes
- Profiler
-
def
printReports(totalTime: Long, dimensionNames: Seq[Dimension], records: List[Record]): Unit
- Definition Classes
- Profiler
-
val
printTables: Boolean
- Definition Classes
- Values
-
def
process(filename: String, ast: ModuleDecl, config: Oberon0Config): Unit
Process the given abstract syntax tree.
Process the given abstract syntax tree. Send output to emitter, marking sections so that we can split things later.
- Definition Classes
- FrontEndDriver → CompilerWithConfig → CompilerBase
-
def
processast(ast: ModuleDecl, config: Oberon0Config): ModuleDecl
Process the AST, returning the new one.
Process the AST, returning the new one. By default, return the AST unchanged.
- Definition Classes
- FrontEndDriver
-
def
processfile(filename: String, config: Oberon0Config): Unit
Custom driver for section tagging and challenge mode for errors.
Custom driver for section tagging and challenge mode for errors. If a parse error occurs: in challenge mode, just send "parse failed" to standard output, otherwise send the message to the errors file.
- Definition Classes
- FrontEndDriver → CompilerBase
-
def
processfiles(filenames: Seq[String], config: Oberon0Config): Unit
- Definition Classes
- CompilerBase
-
def
profile[T](computation: ⇒ T, dimensionNames: Seq[Dimension], logging: Boolean): T
- Definition Classes
- Profiler
-
def
profileStart(logging: Boolean): Unit
- Definition Classes
- Profiler
-
def
profileStop(): (Seq[Dimension]) ⇒ Unit
- Definition Classes
- Profiler
-
def
profileStop(dimensionNames: Seq[Dimension]): Unit
- Definition Classes
- Profiler
-
def
profileStopInteractive(): Unit
- Definition Classes
- Profiler
-
def
pseq(l: Seq[PrettyPrintable], prefix: String, elemToDoc: (PrettyPrintable) ⇒ Doc, sep: Doc, sepfn: (Seq[Doc], Doc) ⇒ Doc): Doc
- Definition Classes
- PrettyPrinterBase
-
def
question: Doc
- Definition Classes
- PrettyPrinterBase
-
def
rangle: Doc
- Definition Classes
- PrettyPrinterBase
-
def
rbrace: Doc
- Definition Classes
- PrettyPrinterBase
-
def
rbracket: Doc
- Definition Classes
- PrettyPrinterBase
-
implicit
def
regex(r: Regex): Parser[String]
- Definition Classes
- WhitespaceParser → RegexParsers
-
def
rep[T](p: ⇒ Parser[T]): Parser[List[T]]
- Definition Classes
- Parsers
-
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
p0call-by-name arguments is evaluated at most once per constructed Parser object, instead of on every need that arises during parsing.
-
def
rep1[T](p: ⇒ Parser[T]): Parser[List[T]]
- Definition Classes
- Parsers
-
def
rep1sep[T](p: ⇒ Parser[T], q: ⇒ Parser[Any]): Parser[List[T]]
- Definition Classes
- Parsers
-
def
repN[T](num: Int, p: ⇒ Parser[T]): Parser[List[T]]
- Definition Classes
- Parsers
-
def
repsep[T](p: ⇒ Parser[T], q: ⇒ Parser[Any]): Parser[List[T]]
- Definition Classes
- Parsers
-
def
resetEnvironments(): Unit
- Definition Classes
- Environments
-
def
result[T](v: ⇒ T): Parser[T]
- Definition Classes
- ParserUtilities
-
lazy val
rootconstexp: (Expression) ⇒ Boolean
Is this expression the root of what is expected to be a constant expression? At this level only expressions on the RHS of a constant declaration have this property.
Is this expression the root of what is expected to be a constant expression? At this level only expressions on the RHS of a constant declaration have this property.
- Definition Classes
- NameAnalyser
-
def
rootconstexpDef: (Expression) ⇒ Boolean
- Definition Classes
- NameAnalyser → NameAnalyser
-
def
rootenv(bindings: (String, Entity)*): Environment
- Definition Classes
- Environments
-
def
rparen: Doc
- Definition Classes
- PrettyPrinterBase
-
def
section(emitter: Emitter, name: String): Unit
Output a section heading so that the output can be split later.
Output a section heading so that the output can be split later.
- Definition Classes
- Driver
-
def
semi: Doc
- Definition Classes
- PrettyPrinterBase
-
def
semisep(l: Seq[SourceTree], sep: Doc = semi): Doc
Pretty-print a nested list of nodes separated by sep (default: semi colon) and line breaks.
Pretty-print a nested list of nodes separated by sep (default: semi colon) and line breaks.
- Definition Classes
- SourcePrettyPrinter
-
def
sep(ds: Seq[Doc]): Doc
- Definition Classes
- PrettyPrinterBase
-
def
seq[T](l: Seq[T], prefix: String, elemToDoc: (T) ⇒ Doc, sep: Doc, sepfn: (Seq[Doc], Doc) ⇒ Doc): Doc
- Definition Classes
- PrettyPrinterBase
-
lazy val
simpexp: PackratParser[Expression]
- Definition Classes
- SyntaxAnalyser
-
def
skipWhitespace: Boolean
- Definition Classes
- WhitespaceParser → RegexParsers
-
def
softbreak: Doc
- Definition Classes
- PrettyPrinterBase
-
def
softline: Doc
- Definition Classes
- PrettyPrinterBase
-
def
space: Doc
- Definition Classes
- PrettyPrinterBase
-
def
spaces(n: Int): Doc
- Definition Classes
- PrettyPrinterBase
-
def
squote: Doc
- Definition Classes
- PrettyPrinterBase
-
def
squotes(d: Doc): Doc
- Definition Classes
- PrettyPrinterBase
-
def
ssep(ds: Seq[Doc], sep: Doc): Doc
- Definition Classes
- PrettyPrinterBase
-
def
startReport(dimensionNames: Seq[Dimension]): Unit
- Definition Classes
- Profiler → Values
-
val
startTime: Long
- Definition Classes
- Profiler
-
lazy val
statement: PackratParser[Statement]
- Definition Classes
- SyntaxAnalyser
-
def
statementDef: PackratParser[Statement]
- Definition Classes
- SyntaxAnalyser → SyntaxAnalyser → SyntaxAnalyser → SyntaxAnalyser
-
lazy val
statementSequence: Parser[Block]
- Definition Classes
- SyntaxAnalyser
-
lazy val
statements: Parser[Block]
- Definition Classes
- SyntaxAnalyser
-
lazy val
step: Parser[Option[Expression]]
- Definition Classes
- SyntaxAnalyser
-
def
sterm(ds: Seq[Doc], term: Doc): Doc
- Definition Classes
- PrettyPrinterBase
-
def
string(s: String): Doc
- Definition Classes
- PrettyPrinterBase
-
def
stringToInt(s: String): Either[Int, String]
- Definition Classes
- ParserUtilities
-
def
subjectsToStep(src: Any, dst: Any): Step
- Definition Classes
- Profiler
-
def
success[T](v: T): Parser[T]
- Definition Classes
- Parsers
-
def
summariseAlongDims(dimensionNames: Seq[Dimension], records: List[Record], nrecords: Int, profiledTime: Long): Unit
- Definition Classes
- Profiler
-
def
surround(d: Doc, b: Doc): Doc
- Definition Classes
- PrettyPrinterBase
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
- def tasklevel: Int
-
lazy val
term: PackratParser[Expression]
- Definition Classes
- SyntaxAnalyser
-
implicit
def
text(t: String): Doc
- Definition Classes
- PrettyPrinter → PrettyPrinterBase
-
def
textOf[T](t: T, includeWhiteSpace: Boolean): Option[String]
- Definition Classes
- PositionedParserUtilities
-
def
tilde: Doc
- Definition Classes
- PrettyPrinterBase
-
def
time[T](computation: ⇒ T, warmup: Int, n: Int, discard: Int): Unit
- Definition Classes
- Profiler
-
lazy val
tipe: (Expression) ⇒ Type
The type of an expression.
The type of an expression.
- Definition Classes
- TypeAnalyser
-
def
tipeDef: (Expression) ⇒ Type
- Definition Classes
- TypeAnalyser
-
def
toDoc(n: SourceTree): Doc
- Definition Classes
- SourcePrettyPrinter → SourcePrettyPrinter → SourcePrettyPrinter → SourcePrettyPrinter
-
def
toParenDoc(e: PrettyExpression): Doc
- Definition Classes
- SourcePrettyPrinter → ParenPrettyPrinter
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
def
trace(predicate: (Event) ⇒ Boolean): Unit
- Definition Classes
- Profiler
-
lazy val
trueConstant: IntegerValue
Built-in true constant.
Built-in true constant.
- Definition Classes
- SymbolTable
-
lazy val
typebasetype: (Type) ⇒ Type
The actual type that a user type denotes.
The actual type that a user type denotes.
- Definition Classes
- TypeAnalyser
-
lazy val
typedecl: Parser[TypeDecl]
- Definition Classes
- SyntaxAnalyser
-
lazy val
typedeclsection: Parser[List[TypeDecl]]
- Definition Classes
- SyntaxAnalyser
-
lazy val
typedef: PackratParser[TypeDef]
- Definition Classes
- SyntaxAnalyser
-
def
typedefDef: PackratParser[TypeDef]
- Definition Classes
- SyntaxAnalyser
-
def
underscore: Doc
- Definition Classes
- PrettyPrinterBase
-
lazy val
unknownType: BuiltinType
A type that is unknown, eg because the typed thing is erroneously defined.
A type that is unknown, eg because the typed thing is erroneously defined.
- Definition Classes
- SymbolTable
-
def
value(v: Any): Doc
- Definition Classes
- PrettyPrinterBase
-
lazy val
value: (Expression) ⇒ Int
What is the value of an integer expression? Only needs to be valid if the expression is an integer constant (see isconst above) and is defined (eg, no divide by zero.) Returns zero in all other cases.
What is the value of an integer expression? Only needs to be valid if the expression is an integer constant (see isconst above) and is defined (eg, no divide by zero.) Returns zero in all other cases. FIXME: Ignores issues of overflow.
- Definition Classes
- NameAnalyser
-
def
valueToString(a: Value): String
- Definition Classes
- Values
-
lazy val
vardecl: Parser[VarDecl]
- Definition Classes
- SyntaxAnalyser
-
lazy val
vardeclsection: Parser[List[VarDecl]]
- Definition Classes
- SyntaxAnalyser
-
def
vcat(ds: Seq[Doc]): Doc
- Definition Classes
- PrettyPrinterBase
-
def
verticalbar: Doc
- Definition Classes
- PrettyPrinterBase
-
def
vsep(ds: Seq[Doc], sep: Doc): Doc
- Definition Classes
- PrettyPrinterBase
-
def
vsep(ds: Seq[Doc]): Doc
- Definition Classes
- PrettyPrinterBase
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
lazy val
whileStatement: Parser[WhileStatement]
- Definition Classes
- SyntaxAnalyser
-
val
whiteSpace: Regex
- Attributes
- protected
- Definition Classes
- RegexParsers
-
lazy val
whitespaceParser: PackratParser[Any]
- Definition Classes
- SyntaxAnalyser → WhitespaceParser
-
def
width(d: Doc, f: (Int) ⇒ Doc): Doc
- Definition Classes
- PrettyPrinterBase
-
def
wrap[T, U](p: ⇒ Parser[T], f: (T) ⇒ Either[U, String]): Parser[U]
- Definition Classes
- ParserUtilities