X-Git-Url: https://git.libre-soc.org/?p=sv2nmigen.git;a=blobdiff_plain;f=svparse.py;h=3a495edc8c5ac4e58e9c6432f6ad6c3144592ff5;hp=25c0c6831b4d321ce173f2f2d33ea04f1f10df9e;hb=651baa08ef15d54e85f8e5080e39c829c5f6d3a9;hpb=cfedcf9205a2948f3eb88ff98d0ed48d2678f48e diff --git a/svparse.py b/svparse.py index 25c0c68..3a495ed 100644 --- a/svparse.py +++ b/svparse.py @@ -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))