abstract class Names extends AnyRef
This class defines a uniform interface for defining parsers for user-defined names (identifiers and operators), independent of how whitespace should be handled after the name.
- Source
- Names.scala
- Since
4.0.0
- Note
implementations of this class found within
Lexermay employ sharing and refine thedefs in this class intovalorlazy valwhen overriding.
- Alphabetic
- By Inheritance
- Names
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Abstract Value Members
-
abstract
def
identifier(startChar: CharPredicate): Parsley[String]
This combinator will parse an identifier based on the provided identifier start and described identifier letter.
This combinator will parse an identifier based on the provided identifier start and described identifier letter. It is capable of handling unicode characters if the configuration permits.
After parsing a valid identifier as in
identifier, this combinator will verify that the first character matches the given parameter. IfNotRequiredis passed, this combinator will be equivalent toidentifier.If hard keywords are specified by the configuration, this parser is not permitted to parse them.
- startChar
describes what the starting character must be
// identifierStart = Basic(_.isLetter) // identifierLetter = Basic(_.isLetterOrDigit) // hardKeywords = Set("if", ...) scala> identifier(Basic(_.isLower)).parse("x1") val res0 = Success("x1") scala> identifier(Basic(_.isLower)).parse("X1") val res1 = Failure(...) scala> identifier(Basic(_.isLower)).parse("1x") val res2 = Failure(...) scala> identifier(Basic(_.isLower)).parse("") val res3 = Failure(...) scala> identifier(Basic(_.isLower)).parse("iffy") val res4 = Success("iffy") scala> identifier(Basic(_.isLower)).parse("if") val res5 = Failure(...)
- Since
4.0.0
- Note
the exact behaviour of this parser is decided by the implementations given in
Lexer, which will depend on user-defined configuration. Please see the relevant documentation of these specific objects.
Example: -
abstract
def
identifier: Parsley[String]
This parser will parse an identifier based on the defined identifier start and identifier letter.
This parser will parse an identifier based on the defined identifier start and identifier letter. It is capable of handling unicode characters if the configuration permits. If hard keywords are specified by the configuration, this parser is not permitted to parse them.
// identifierStart = Basic(_.isLetter) // identifierLetter = Basic(_.isLetterOrDigit) // hardKeywords = Set("if", ...) scala> identifier.parse("x1") val res0 = Success("x1") scala> identifier.parse("1x") val res1 = Failure(...) scala> identifier.parse("") val res2 = Failure(...) scala> identifier.parse("iffy") val res3 = Success("iffy") scala> identifier.parse("if") val res4 = Failure(...)
- Since
4.0.0
- Note
the exact behaviour of this parser is decided by the implementations given in
Lexer, which will depend on user-defined configuration. Please see the relevant documentation of these specific objects.
Example: -
abstract
def
userDefinedOperator(startChar: CharPredicate, endChar: CharPredicate): Parsley[String]
This combinator will parse a user-defined operator based on the defined operator start and operator letter, refined by the provided
startCharandendChar.This combinator will parse a user-defined operator based on the defined operator start and operator letter, refined by the provided
startCharandendChar. It is capable of handling unicode characters if the configuration permits.After parsing a valid operator as in
userDefinedOperator, this combinator will verify that the first and last characters match the given parameters. IfNotRequiredis passed to either argument, this will permit any character. Passing it to both arguments will be equivalent touserDefinedOperator.If hard operators are specified by the configuration, this parser is not permitted to parse them.
- startChar
describes what the starting character must be
- endChar
describes what the final character must be
// operatorStart = Basic(Set('+', '-')) // operatorLetter = Basic(Set('+', '-', ':')) // hardKeywords = Set("+", "+:", ...) scala> identifier.parse("-") val res0 = Success("-") scala> identifier.parse("*") val res1 = Failure(...) scala> identifier.parse("") val res2 = Failure(...) scala> identifier.parse("++") val res3 = Success("++") scala> identifier.parse("+:") val res4 = Failure(...)
- Since
4.0.0
- Note
the exact behaviour of this parser is decided by the implementations given in
Lexer, which will depend on user-defined configuration. Please see the relevant documentation of these specific objects.
Example: -
abstract
def
userDefinedOperator: Parsley[String]
This parser will parse a user-defined operator based on the defined operator start and operator letter.
This parser will parse a user-defined operator based on the defined operator start and operator letter. It is capable of handling unicode characters if the configuration permits. If hard operators are specified by the configuration, this parser is not permitted to parse them.
// operatorStart = Basic(Set('+', '-')) // operatorLetter = Basic(Set('+', '-', ':')) // hardKeywords = Set("+", "+:", ...) scala> userDefinedOperator(NotRequired, Basic(Set(':'))).parse("-:") val res0 = Success("-:") scala> userDefinedOperator(NotRequired, Basic(Set(':'))).parse("*:") val res1 = Failure(...) scala> userDefinedOperator(NotRequired, Basic(Set(':'))).parse("") val res2 = Failure(...) scala> userDefinedOperator(NotRequired, Basic(Set(':'))).parse("++") val res3 = Failure(...) scala> userDefinedOperator(NotRequired, Basic(Set(':'))).parse("+:") val res4 = Failure(...) scala> userDefinedOperator(NotRequired, Basic(Set(':'))).parse("++:") val res5 = Success("++:")
- Since
4.0.0
- Note
the exact behaviour of this parser is decided by the implementations given in
Lexer, which will depend on user-defined configuration. Please see the relevant documentation of these specific objects.
Example:
Concrete 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
-
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()
-
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()