Skip to content

Instantly share code, notes, and snippets.

@okram
Created February 19, 2020 22:00
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save okram/bdc5f969edd40210467e6c82e86900f2 to your computer and use it in GitHub Desktop.
Save okram/bdc5f969edd40210467e6c82e86900f2 to your computer and use it in GitHub Desktop.
test("[choose] parsing"){
val chooseInst:Obj = int.plus(int(2)).choose(rec(int.is(int.gt(int(10))) -> int.gt(int(20)),int -> int.plus(int(10))))
assertResult(chooseInst)(parser.parse[IntType]("int[plus,2][choose,[int[is,int[gt,10]]:int[gt,20],int:int[plus,10]]]"))
assertResult(chooseInst)(parser.parse[IntType]("int[plus,2][choose,[int[is,int[gt,10]]->int[gt,20] | int->int[plus,10]]]"))
assertResult(chooseInst)(parser.parse[IntType]("int[plus,2][int[is,int[gt,10]]->int[gt,20] | int->int[plus,10]]"))
assertResult(chooseInst)(parser.parse[IntType](
"""
| int[plus,2]
| [int[is,int[gt,10]] -> int[gt,20]
| |int -> int[plus,10]]""".stripMargin))
}
//// RECAP
[choose,[int[is,int[gt,10]]:int[gt,20],int:int[plus,10]]]
[choose,[int[is,int[gt,10]]->int[gt,20] | int->int[plus,10]]]
[int[is,int[gt,10]]->int[gt,20] | int->int[plus,10]]
[int[is,int[gt,10]] -> int[gt,20]
|int -> int[plus,10]]
@okram
Copy link
Author

okram commented Feb 19, 2020

[ [is>10] -> [gt,20]
| int     -> [plus,10] ]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment