expression.scala

来自「JAVA 语言的函数式编程扩展」· SCALA 代码 · 共 67 行

SCALA
67
字号
/*                     __                                               *\**     ________ ___   / /  ___     Scala API                            ****    / __/ __// _ | / /  / _ |    (c) 2002-2006, LAMP/EPFL             ****  __\ \/ /__/ __ |/ /__/ __ |                                         **** /____/\___/_/ |_/____/_/ | |                                         ****                          |/                                          **\*                                                                      */// $Id: Expression.scala 8247 2006-07-24 14:22:00Z odersky $package scala.xml.path;object Expression {  final def testFromString(x: String): Test = {    x.charAt(0) match {      case '*' if( x.length() == 1 ) => WildcardTest;      case _                         => NameTest(x);    }  }    case class FExp(e:Expr, c:Cond) {    def eval(n: Node): NodeSeq = new NodeSeq { val theSeq=Nil}; // @todo  }    abstract class GenExp ;  case class Attrib(test: NameTest, e: Expr) extends GenExp;  abstract class Expr extends GenExp {    def \ (x: String) =       if( x=="*")         Child(WildcardTest, this)      else        Child(NameTest(x), this);        def \\ (x: String) =       if( x=="*")         DescOrSelf(WildcardTest, this)      else        DescOrSelf(NameTest(x), this);        def apply(c: Cond) = FExp(this, c);        def eval(n: Node): NodeSeq = new NodeSeq { val theSeq=Nil}; // @todo  }    case object Root extends Expr;    case class Child(test: Test, e: Expr) extends Expr;  case class DescOrSelf(test: Test, e: Expr) extends Expr;      abstract class Test;    case object WildcardTest extends Test; //                "x \ *  "  case class  NameTest(label: String) extends Test; //     "x \ bar"      abstract class Cond;     case class Exists(p: GenExp) extends Cond ;  //          "p [ p ]"  case class Equals(p: Expr, c:String) extends Cond ; //   "p [ @p == bla ]"    }

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?