|
From: <ka...@us...> - 2012-12-30 05:27:16
|
Revision: 7707
http://paintown.svn.sourceforge.net/paintown/?rev=7707&view=rev
Author: kazzmir
Date: 2012-12-30 05:27:08 +0000 (Sun, 30 Dec 2012)
Log Message:
-----------
wrap output with a namespace
Modified Paths:
--------------
trunk/src/mugen/state/serialize.py
trunk/src/mugen/state/state.py
Modified: trunk/src/mugen/state/serialize.py
===================================================================
--- trunk/src/mugen/state/serialize.py 2012-12-30 05:12:00 UTC (rev 7706)
+++ trunk/src/mugen/state/serialize.py 2012-12-30 05:27:08 UTC (rev 7707)
@@ -16,7 +16,7 @@
import state
}}
rules:
- start = space:namespace (!"\n" .)* newline s* obj:struct {{ value = obj }}
+ start = name:namespace (!"\n" .)* newline s* obj:struct {{ value = state.Program(name, obj) }}
namespace = "namespace" s+ id:identifier
struct = "struct" s* name:identifier s* "{" fields:(s* field)* s* "}" {{
value = state.State(name)
@@ -102,6 +102,13 @@
}
return data
+def generate_program_cpp(program):
+ data = """namespace %s{
+%s
+}
+""" % (program.namespace, generate_cpp(program.struct))
+ return data
+
def test1():
parser = create_peg(grammar, 'string')
@@ -116,4 +123,4 @@
print "Give an argument"
sys.exit(0)
-print generate_cpp(create_peg(grammar)(sys.argv[1]))
+print generate_program_cpp(create_peg(grammar)(sys.argv[1]))
Modified: trunk/src/mugen/state/state.py
===================================================================
--- trunk/src/mugen/state/state.py 2012-12-30 05:12:00 UTC (rev 7706)
+++ trunk/src/mugen/state/state.py 2012-12-30 05:27:08 UTC (rev 7707)
@@ -9,6 +9,11 @@
def addField(self, field):
self.fields.append(field)
+class Program:
+ def __init__(self, namespace, struct):
+ self.namespace = namespace
+ self.struct = struct
+
def combineTemplate(name, templates):
if templates != None:
return "%s<%s>" % (name, ', '.join([str(x) for x in templates]))
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|