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
- All
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( ... ) @native()
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
final
def
getClass(): Class[_]
- 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( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @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