Parsing a Template
Parser for a template
import Parser
import Handlebars.Expression as Expression exposing (Expression(..), SubExp(..))
import Result.Extra as Result
""
|> Parser.run path
|> Result.isOk
--> False
"."
|> Parser.run path
--> Ok (0,[])
"../"
|> Parser.run path
|> Result.isOk
--> False
"../."
|> Parser.run path
--> Ok (1,[])
"some.test"
|> Parser.run path
--> Ok (0,["some", "test"])
"../some"
|> Parser.run path
--> Ok (1,["some"])
"some.test a"
|> Parser.run path
--> Ok (0,["some", "test"])import Parser
import Handlebars.Expression as Expression exposing (Expression(..), SubExp(..))
import Result.Extra as Result
"test some.test"
|> Parser.run subExp
--> Ok (Helper "test" (LookUp (0,["some","test"]),[]))
"test a b c"
|> Parser.run subExp
--> Ok (Helper "test" (LookUp (0,["a"]),[LookUp (0,["b"]),LookUp (0,["c"])]))
"some.test a"
|> Parser.run subExp
|> Result.isOk
--> False
"some (test a) b"
|> Parser.run subExp
--> Ok (Helper "some" ( (Helper "test" (LookUp (0,["a"]),[]) ), [LookUp (0,["b"])]) )
"(test)"
|> Parser.run subExp
|> Result.isOk
--> False
"some (a)"
|> Parser.run subExp
--> Ok (Helper "some" (LookUp (0,["a"]),[]))import Parser
import Handlebars.Expression as Expression exposing (Expression(..), SubExp(..))
import Result.Extra as Result
""
|> Parser.run variable
|> Result.isOk
--> False
text
variables
For block
Helper Block