All Downloads are FREE. Search and download functionalities are using the official Maven repository.

jaskell.expression.parsers.D.scala Maven / Gradle / Ivy

package jaskell.expression.parsers

import jaskell.expression.{Divide, Expression}
import jaskell.parsec.{Parsec, SkipWhitespaces, State}

import scala.util.Try

/**
 * TODO
 *
 * @author mars
 * @version 1.0.0
 */
class D(val prev: Expression) extends Parsec[Char, Expression] {

  import jaskell.parsec.Txt.{ch, skipWhiteSpaces}
  import jaskell.parsec.parsecConfig

  val skips: SkipWhitespaces = skipWhiteSpaces
  val op: Parsec[Char, Unit] = skips *> ch('/') *> skips
  val next = new Parser

  def apply(s: State[Char]): Try[Expression] = {
    for {
      _ <- op ? s
      exp <- next ? s
    } yield {new Divide(prev, exp)}
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy