org.parboiled.scala.rules.CharRule.scala Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of parboiled-scala_2.11 Show documentation
Show all versions of parboiled-scala_2.11 Show documentation
Elegant parsing in Java and Scala - lightweight, easy-to-use, powerful
The newest version!
/*
* Copyright (C) 2009-2011 Mathias Doenitz
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.parboiled.scala.rules
import org.parboiled.matchers._
import org.parboiled.common.StringUtils.escape
import java.lang.String
/**
* A rule matching one single character.
*/
class CharRule(val c: Char) extends Rule0(new CharMatcher(c).label(s"'${escape(c)}'")) {
/**
* Creates a rule matching the range of characters between the character of this rule and the given character
* (inclusively).
*/
override def -(upperBound: String) = {
require(upperBound != null && upperBound.length == 1)
new Rule0(new CharRangeMatcher(c, upperBound.charAt(0)).label(s"${c}..${upperBound}"))
}
}