|
Scala example source code file (StdTokenParsers.scala)
The Scala StdTokenParsers.scala source code/* __ *\ ** ________ ___ / / ___ Scala API ** ** / __/ __// _ | / / / _ | (c) 2006-2011, LAMP/EPFL ** ** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ ** ** /____/\___/_/ |_/____/_/ | | ** ** |/ ** \* */ package scala.util.parsing package combinator package syntactical import token._ import collection.mutable.HashMap /** This component provides primitive parsers for the standard tokens defined in `StdTokens'. * * @author Martin Odersky, Adriaan Moors */ trait StdTokenParsers extends TokenParsers { type Tokens <: StdTokens import lexical.{Keyword, NumericLit, StringLit, Identifier} protected val keywordCache : HashMap[String, Parser[String]] = HashMap.empty /** A parser which matches a single keyword token. * * @param chars The character string making up the matched keyword. * @return a `Parser' that matches the given string */ // implicit def keyword(chars: String): Parser[String] = accept(Keyword(chars)) ^^ (_.chars) implicit def keyword(chars: String): Parser[String] = keywordCache.getOrElseUpdate(chars, accept(Keyword(chars)) ^^ (_.chars)) /** A parser which matches a numeric literal */ def numericLit: Parser[String] = elem("number", _.isInstanceOf[NumericLit]) ^^ (_.chars) /** A parser which matches a string literal */ def stringLit: Parser[String] = elem("string literal", _.isInstanceOf[StringLit]) ^^ (_.chars) /** A parser which matches an identifier */ def ident: Parser[String] = elem("identifier", _.isInstanceOf[Identifier]) ^^ (_.chars) } Other Scala examples (source code examples)Here is a short list of links related to this Scala StdTokenParsers.scala source code file: |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.