On Jun 26, 2015, at 1:43 PM, Matt Wette <matthew.we...@verizon.net> wrote: > On Jun 3, 2015, at 8:40 PM, Matt Wette <matthew.we...@verizon.net> wrote: >> My current project is a lalr module. > > Here is a slight update on my parser generator. > 1) I have added a "hashify" procedure that allows one to set up the parser > and lex'er to use integers instead of symbols. > 2) I have updated the specification parser and processor to allow use of > strings. My C-parser is using "++" and "+=" now. > 3) I have updated the lexical analyzer tools to allow (I hope) easier > construction of lexical analyzers.
More updates: 1) I reworked the export to Bison. I 2) I started working on user/hacker manual 3) I am working on some parsers: C, Matlab, Modelica, Ecmascript. (When I run my exports modelica grammar through bison I get the same S/R and R/R conflicts. => vote of confidence) 4) I am working on writing to standalone file (a la bison for C). 5) I have submitted much of the code to savannah. (I have not included the in-work parsers.) Bugs surely remain. Here is sample output from the writer for generated parser file (in work) for my C parser: (define len-v #(1 1 5 0 1 2 1 2 1 2 1 2 1 3 1 3 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 ...)) (define pat-v #(((8 . 1) (9 . 2) (58 . 3) (60 . 4) (61 . 5) (62 . 6) (65 . 7) (66 . 8) ( ...)) (define act-v #(;; state 0 (lambda ($1 . $rest) $1) ... ;; state 3 (lambda ($2 $1 . $rest) (let ((decl `(decl ,(tl->list $1) ,(tl->list $2)))) (for-each add-typename (find-new-typenames decl)) decl)) ... ;; state 322 (lambda ($1 . $rest) `(cpp-stmt ,$1))