Skip to content

Instantly share code, notes, and snippets.

@dckc
Created September 6, 2014 19:36
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 dckc/925b37dec1795aef8030 to your computer and use it in GitHub Desktop.
Save dckc/925b37dec1795aef8030 to your computer and use it in GitHub Desktop.
how's this for simple__quasiParser?
object simple__quasiParser:
object VALUE_HOLE: pass
object PATTERN_HOLE: pass
def valueHole(i):
(VALUE_HOLE, i)
def valueMaker(chunks):
object x:
def substitute(values):
def mk(chunk):
switch (chunk):
match (==VALUE_HOLE, i):
values[i]
match (==PATTERN_HOLE, i):
throw("cannot substitue pattern hole")
match _:
chunk
mkString([mk(chunk) for chunk in chunks])
def mkString(ss):
def out := ""
for s in ss:
out += s
out
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment