Skip to content

Instantly share code, notes, and snippets.

@jordansissel
Created November 25, 2010 12:41
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 jordansissel/715331 to your computer and use it in GitHub Desktop.
Save jordansissel/715331 to your computer and use it in GitHub Desktop.
mpf parser written in ragel (for ruby, etc)
snack(~/projects/mpf/ragel) % ruby mpf.rb test.mpf
{
"pants" => [
[0] [
[0] "\"foo\"",
[1] [
[0] {
"fizzle" => [
[0] "33"
]
}
]
]
]
}
{
"file" => [
[0] [
[0] "foo",
[1] [
[0] {
"ensure" => [
[0] "present"
],
"bar" => [
[0] "\"baz\""
],
"source" => [
[0] "\"puppet:///modules/foo/bar/baz\""
]
}
]
],
[1] [
[0] "\"/tmp/x\"",
[1] [
[0] {
"source" => [
[0] "\"puppet:///modules/foo/bar/baz\""
],
"owner" => [
[0] "\"root\""
]
}
]
],
[2] [
[0] "\"foo\"",
[1] [
[0] nil
]
]
]
}
Edge: Foo["test"] -> Foo["foo"]
Edge: Foo["test"] <- Foo["foo"]
file {
"/tmp/x":
source => "puppet:///modules/foo/bar/baz",
owner => "root";
foo:
source => "puppet:///modules/foo/bar/baz",
bar => "baz",
ensure => present;
}
file {
"foo": ;
}
pants {
"foo":
fizzle => 33;
}
Foo["test"] -> Foo["foo"]
Foo["test"] <- Foo["foo"]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment