aboutsummaryrefslogtreecommitdiff
path: root/compilador/parser.py
diff options
context:
space:
mode:
authorIván Ávalos <avalos@disroot.org>2022-11-25 23:14:48 -0600
committerIván Ávalos <avalos@disroot.org>2022-11-25 23:14:48 -0600
commit881ae40f989f649926a876a54c9a096c03cf9009 (patch)
tree8b9d5fce16d97b138e54ed24a2dd310b5fafc999 /compilador/parser.py
parent86291df7d6d859bbeff1645d555a9a8832d42354 (diff)
downloadjavanol-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.py8
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