summaryrefslogtreecommitdiffstats
path: root/ChangeLog
diff options
context:
space:
mode:
Diffstat (limited to 'ChangeLog')
-rw-r--r--ChangeLog25
1 files changed, 25 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 367c2506..016c7ac4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,28 @@
+2015-07-09 Kaz Kylheku <kaz@kylheku.com>
+
+ Parser cleanup: embed scanner in parser.
+
+ * parser.c (parser_destroy): New GC finalizer static function.
+ (parser_ops): Register parser_destroy.
+ (parser_common_init): New function, shared by parse and parse_once.
+ Initializes embedded scanner.
+ (parser_cleanup): New function, shared by parse_once and
+ parser_destroy.
+ (parser): Use parser_common_init.
+
+ * parser.h (parser_t): New member, yyscan.
+ (reset_scanner, parser_common_init): Declared.
+
+ * parser.l (reset_scanner): New function.
+
+ * parser.y (parse_once): Use parser_common_init, and
+ thus perform only a few initializations. Do not
+ define scanner as a local variable.
+ (parse): Call reset_scanner instead of
+ yylex_init since the scanner is being reused,
+ and for the same reason do not call yylex_destroy.
+ GC will do that now.
+
2015-07-08 Kaz Kylheku <kaz@kylheku.com>
Bugfix: define-modify-macro not registered for auto-loading.