diff options
author | Li Haoyi <haoyi@dropbox.com> | 2014-11-04 21:01:50 -0800 |
---|---|---|
committer | Li Haoyi <haoyi@dropbox.com> | 2014-11-04 21:01:50 -0800 |
commit | bc675b3e40882bdd8ddbb97a4a717a5672f4980f (patch) | |
tree | 568bcc6c3d901bab0ee8357a25e9b3b40df28be9 /scalatexApi/src/test/scala/scalatex/ParserTests.scala | |
parent | 84d025280986302c0435a5910a6a3c9c34d8fc8c (diff) | |
download | hands-on-scala-js-bc675b3e40882bdd8ddbb97a4a717a5672f4980f.tar.gz hands-on-scala-js-bc675b3e40882bdd8ddbb97a4a717a5672f4980f.tar.bz2 hands-on-scala-js-bc675b3e40882bdd8ddbb97a4a717a5672f4980f.zip |
Basic if-else-for parsing works
Diffstat (limited to 'scalatexApi/src/test/scala/scalatex/ParserTests.scala')
-rw-r--r-- | scalatexApi/src/test/scala/scalatex/ParserTests.scala | 48 |
1 files changed, 46 insertions, 2 deletions
diff --git a/scalatexApi/src/test/scala/scalatex/ParserTests.scala b/scalatexApi/src/test/scala/scalatex/ParserTests.scala index 9301755..c2f35cc 100644 --- a/scalatexApi/src/test/scala/scalatex/ParserTests.scala +++ b/scalatexApi/src/test/scala/scalatex/ParserTests.scala @@ -5,7 +5,7 @@ import org.parboiled2._ import torimatomeru.ScalaSyntax import scalatex.stages.{Parser, Ast} -import Ast.Block.Text +import scalatex.stages.Ast.Block.{IfElse, For, Text} import Ast.Chain.Args object ParserTests extends utest.TestSuite{ @@ -148,6 +148,29 @@ object ParserTests extends utest.TestSuite{ )) ) } + 'ControlFlow{ + 'for - check( + "@for(x <- 0 until 3){lol}", + _.ForLoop.run(), + For("for(x <- 0 until 3)", Block(Seq(Text("lol")))) + ) + 'forBlock - check( + """@for(x <- 0 until 3) + | lol""".stripMargin, + _.LoneForLoop.run(), + For("for(x <- 0 until 3)", Block(Seq(Text("\n "), Text("lol")))) + ) + 'if - check( + "@if(true){lol}", + _.IfElse.run(), + IfElse("if(true)", Block(Seq(Text("lol"))), None) + ) + 'ifElse - check( + "@if(true){lol}else{ omg }", + _.IfElse.run(), + IfElse("if(true)", Block(Seq(Text("lol"))), Some(Block(Seq(Text(" omg "))))) + ) + } 'Body{ 'indents - check( """ @@ -181,7 +204,28 @@ object ParserTests extends utest.TestSuite{ Chain("omg",Seq(Block( Seq( Text("\n "), - Chain("wtf",Seq())) + Chain("wtf",Seq()) + ) + ))), + Text("\n"), + Chain("bbq", Seq()) + )) + ) + 'braces - check( + """ + |@omg{ + | @wtf + |} + |@bbq""".stripMargin, + _.Body.run(), + Block(Seq( + Text("\n"), + Chain("omg",Seq(Block( + Seq( + Text("\n "), + Chain("wtf",Seq()), + Text("\n") + ) ))), Text("\n"), Chain("bbq", Seq()) |