Add inscript lua code

master
rubenwardy 2014-10-19 19:37:57 +01:00
parent b4aa4ca530
commit 463b60d051
2 changed files with 43 additions and 9 deletions

View File

@ -59,12 +59,31 @@ class MeseCodeParser:
file = open(filename, "r")
lineno = 0
is_lua = False
for line in file.readlines():
lineno += 1
orig = line
# Remove comments
if line.find("--") != -1:
line = line[:line.find("--")]
# Lua code blocks
if is_lua:
if line.strip().lower() == "!! end lua":
is_lua = False
else:
self.objects[len(self.objects) - 1].value += line
continue
if line.strip().lower() == "!! lua":
is_lua = True
self.objects.append(self.Node(None, "lua", "", line, lineno))
continue
# Skip Blank Lines
if line.strip() == "":
continue
@ -117,11 +136,15 @@ language_syntax = {
'requires': True,
'uses': True,
'depends': True,
'lua': True,
'node': {
# Item
'name': True,
'is': True,
'drops': True,
'eaten': True,
# Node
'drops': True,
'tiles': True
}
}
@ -250,7 +273,8 @@ def interpretNode(project, item, lua):
class MeseCodeProject:
def __init__(self, filename, directory):
try:
#try:
if True:
self.parser = MeseCodeParser().parse(filename)
self.modname = None
self.requires_eat = False
@ -304,12 +328,16 @@ class MeseCodeProject:
retval += lb.build("minetest.register_node(\"" + getNameFromItem(self.modname, item) + "\", ", 1) + "\n"
elif item.name == "script":
retval += "dofile(minetest.get_modpath(\"" + self.modname + "\") .. \"/" + item.value + "\")\n\n"
elif item.name == "lua":
retval += item.value
elif item.name == "requires":
depends.write(item.value + "\n")
elif item.name == "depends":
depends.write(item.value + "\n")
elif item.name == "uses":
depends.write(item.value + "?\n")
elif item.name != "mod":
throwParseError("Unrecognised item on line " + str(item.lineno))
except SystemExit:
return
except Exception, e:
@ -331,8 +359,8 @@ class MeseCodeProject:
output = open(directory + "init.lua", "w")
output.write(libs + retval)
output.close()
except Exception, e:
throwParseError(str(e))
#except Exception, e:
# throwParseError(str(e))
if __name__ == "__main__":
if len(sys.argv) == 2:

View File

@ -12,3 +12,9 @@ node My Node
craftitem Another Node
name node2
eaten 5
!! Lua
print("Hello!")
!! End Lua