Add propane and initial scene grammar
This commit is contained in:
parent
6e04286cc2
commit
5ff83f6734
1
.gitignore
vendored
1
.gitignore
vendored
@ -1,5 +1,6 @@
|
|||||||
/fart
|
/fart
|
||||||
*.bmp
|
*.bmp
|
||||||
*.png
|
*.png
|
||||||
|
/.propane*
|
||||||
/.rscons*
|
/.rscons*
|
||||||
/build/
|
/build/
|
||||||
|
11
Rsconscript
11
Rsconscript
@ -6,7 +6,16 @@ fart_env = env "fart" do |env|
|
|||||||
env["DFLAGS"] += %w[-Werror -O2]
|
env["DFLAGS"] += %w[-Werror -O2]
|
||||||
env["D_IMPORT_PATH"] += %w[src]
|
env["D_IMPORT_PATH"] += %w[src]
|
||||||
|
|
||||||
env["sources"] = glob("src/**/*.d")
|
env.Command("^/src/sceneparser.d", "src/sceneparser.propane",
|
||||||
|
"CMD" => %w[./propane ${_SOURCES} ${_TARGET}],
|
||||||
|
"CMD_DESC" => "Generating scene parser")
|
||||||
|
env.add_build_hook do |builder|
|
||||||
|
if builder.sources.first =~ /sceneparser\.d/
|
||||||
|
builder.vars["DFLAGS"] -= %w[-Werror]
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
env["sources"] = glob("src/**/*.d") + ["^/src/sceneparser.d"]
|
||||||
env.Program("fart", "${sources}")
|
env.Program("fart", "${sources}")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
22
src/sceneparser.propane
Normal file
22
src/sceneparser.propane
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
<<
|
||||||
|
import std.conv;
|
||||||
|
>>
|
||||||
|
|
||||||
|
token background;
|
||||||
|
token comma /,/;
|
||||||
|
token number /\d+(\.\d+)?/;
|
||||||
|
token lt /</;
|
||||||
|
token gt />/;
|
||||||
|
token semicolon /;/;
|
||||||
|
|
||||||
|
Start -> Statements;
|
||||||
|
|
||||||
|
Statements -> ;
|
||||||
|
|
||||||
|
Statements -> Statement Statements;
|
||||||
|
|
||||||
|
Statement -> BackgroundStatement;
|
||||||
|
|
||||||
|
BackgroundStatement -> background Vec3 semicolon;
|
||||||
|
|
||||||
|
Vec3 -> lt number comma number comma number gt;
|
Loading…
x
Reference in New Issue
Block a user