object nonlexeme
This object is concerned with non-lexemes: these are tokens that do not give any special treatment to whitespace.
Whilst the functionality in lexeme is strongly recommended for
wider use in a parser, the functionality here may be useful for more
specialised use-cases. In particular, these may for the building blocks
for more complex tokens (where whitespace is not allowed between them, say),
in which case these compound tokens can be turned into lexemes manually.
For example, the lexer does not have configuration for trailing specifiers
on numeric literals (like, 1024L in Scala, say): the desired numeric
literal parser could be extended with this functionality before whitespace
is consumed by using the variant found in this object.
Alternatively, these tokens can be used for lexical extraction, which
can be performed by the ErrorBuilder
typeclass: this can be used to try and extract tokens from the input stream
when an error happens, to provide a more informative error. In this case,
it is desirable to not consume whitespace after the token to keep the
error tight and precise.
- Source
- Lexer.scala
- Since
4.0.0
- Alphabetic
- By Inheritance
- nonlexeme
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
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
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- val names: Names
This object contains lexing functionality relevant to the parsing of names, which include operators or identifiers.
This object contains lexing functionality relevant to the parsing of names, which include operators or identifiers.
The parsing of names is mostly concerned with finding the longest valid name that is not a reserved name, such as a hard keyword or a special operator.
- Since
4.0.0
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- val symbol: Symbol
This object contains lexing functionality relevant to the parsing of atomic symbols.
This object contains lexing functionality relevant to the parsing of atomic symbols.
Symbols are characterised by their "unitness", that is, every parser inside returns
Unit. This is because they all parse a specific known entity, and, as such, the result of the parse is irrelevant. These can be things such as reserved names, or small symbols like parentheses. This object also contains a means of creating new symbols as well as implicit conversions to allow for Scala's string literals to serve as symbols within a parser.- Since
4.0.0
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- object numeric
This object contains lexing functionality relevant to the parsing of numbers.
This object contains lexing functionality relevant to the parsing of numbers. This is sub-divided into different categories:
- integers (both signed and unsigned)
- reals (signed only)
- a combination of the two (signed and unsigned)
These contain relevant functionality for the processing of decimal, hexadecimal, octal, and binary literals; or some mixed combination thereof (as specified by
desc.numericDesc). Additionally, it is possible to ensure literals represent known sizes or precisions.- Since
4.0.0
- object text
This object contains lexing functionality relevant to the parsing of text.
This object contains lexing functionality relevant to the parsing of text. This is sub-divided into different categories:
- string literals (both with escapes and raw)
- multi-line string literals (both with escapes and raw)
- character literals
These contain the relevant functionality required to specify the degree of unicode support for the underlying language, from ASCII to full UTF-16.
- Since
4.0.0