--[[ Test of Nested Closures DSL (Rule03) Lair Configuration DSL Case Study H. Conrad Cunningham, Professor Computer and Information Science University of Mississippi See the comments in the Semantic Model Module. This Lua module is based on Fowler's builder for the Nested Closures implementation of the Lair Configuration DSL. Developed for CSci 658, Software Language Engineering, Fall 2013 1234567890123456789012345678901234567890123456789012345678901234567890 2013-10-15: Adapted from from rules03.rb and rules.lua --]] ConfigurationBuilder:start(function(config) config:item(S.secure_air_vent) config:item(S.acid_bath, function(item) item:uses(Resources:acid(), function(acid) acid:set_type(S.hcl) acid:set_grade(5) end) item:uses(Resources:electricity(12)) end) config:item(S.camera, function(item) item:uses(Resources:electricity(1)) end) config:item(S.small_power_plant, function(item) item:provides(Resources:electricity(11)) item:depends_on(S.secure_air_vent) end) end)