Guest User

Untitled

a guest
May 27th, 2018
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.64 KB | None | 0 0
  1. VAR = line:line* { return line; } // Return array of arrays with elements :D
  2.  
  3. start = ws "{{" ws
  4. end = ws "}}" ws
  5.  
  6. ws "whitespace"
  7. = s:[ \t\r]*
  8.  
  9. n "newline"
  10. = n:"\n"*
  11.  
  12. line
  13. = start:element body:element* n { return [start].concat(body); }
  14.  
  15. // DRY, element coudl be a var or a line of text
  16. element
  17. = element: (
  18. text
  19. / var
  20. )
  21. { return element; }
  22.  
  23. text
  24. = ws words:word+ ws { return words.join(""); }
  25.  
  26. var
  27. = ws start var_name:word filter:filter? end ws { return {"name": var_name, "filter": filter }; }
  28.  
  29. filter = ws "|" ws filter:word { return filter; }
  30.  
  31. word
  32. = ws char:[A-z_]+ end:ws {return char.join("") + end; }
Add Comment
Please, Sign In to add comment