add working preprocessor (creates docstrings)
[sv2nmigen.git] / svparse.py
index 25c0c6831b4d321ce173f2f2d33ea04f1f10df9e..3a495edc8c5ac4e58e9c6432f6ad6c3144592ff5 100644 (file)
@@ -1,23 +1,22 @@
 import sys
 
 import lexor
-import parse_sv #as parse
+import parse_sv
+import absyn
+import pypreproc
 
 from ply import *
-
-#tokens = list(set(lexor.tokens).union(set(parse.tokens)))
-
-def parsedata(data, debug=0):
-    parser = yacc.parse(debug=2)
-    parser.error = 0
-    p = parser.parse(data, debug=debug)
-    if parser.error:
-        return None
-    return p
+import os 
 
 if __name__ == '__main__':
     fname = sys.argv[1]
+    outputfn = os.path.splitext(fname)[0]+'.py'
+    print(outputfn)
     with open(fname) as f:
         data = f.read()
-        yacc.parse(data, debug=3)
-
+        preproc = pypreproc.Preprocessor()
+        data = preproc.removeComments(data)
+        parse_sv.absyn = absyn.Absyn(outputfn)
+        yacc.parse(data, debug=parse_sv.yacc2_debug)
+        print("No Error")
+        parse_sv.absyn.appendComments(preproc.insertDocstrings(data))