diff options
author | Iván Ávalos <avalos@disroot.org> | 2022-11-25 23:14:48 -0600 |
---|---|---|
committer | Iván Ávalos <avalos@disroot.org> | 2022-11-25 23:14:48 -0600 |
commit | 881ae40f989f649926a876a54c9a096c03cf9009 (patch) | |
tree | 8b9d5fce16d97b138e54ed24a2dd310b5fafc999 /compilador/parser.py | |
parent | 86291df7d6d859bbeff1645d555a9a8832d42354 (diff) | |
download | javanol-881ae40f989f649926a876a54c9a096c03cf9009.tar.gz javanol-881ae40f989f649926a876a54c9a096c03cf9009.tar.bz2 javanol-881ae40f989f649926a876a54c9a096c03cf9009.zip |
El parser ahora serializa el AST en un archivo
Diffstat (limited to 'compilador/parser.py')
-rw-r--r-- | compilador/parser.py | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/compilador/parser.py b/compilador/parser.py index a8f86b9..5330b55 100644 --- a/compilador/parser.py +++ b/compilador/parser.py @@ -14,7 +14,7 @@ # # You should have received a copy of the GNU General Public License # along with this program. If not, see <https://www.gnu.org/licenses/>. -import sys +import sys, pickle import graphviz as gv from pprint import pprint @@ -37,8 +37,14 @@ class Parser: print (unit.message, file=sys.stderr) return 1 + # Renderizar AST dot = gv.Digraph() dot.attr('node', fontname='monospace') unit.graph(dot) dot.render(self.input_file + '.gv') + + # Serializar AST + with open(self.input_file + '.ast', 'wb') as f: + pickle.dump(unit, f) + return 0 |