Author: kjs
Date: Fri Mar 30 13:34:04 2007
New Revision: 17865

Added:
   trunk/compilers/pirc/src/no_output.c   (contents, props changed)
   trunk/compilers/pirc/src/no_output.h   (contents, props changed)
Modified:
   trunk/compilers/pirc/src/pirmain.c
   trunk/compilers/pirc/src/pirparser.c
   trunk/compilers/pirc/src/pirvtable.h
   trunk/config/gen/makefiles/pirc.in

Log:
compilers/pirc:
* fix in macro (p should be P)
* add "no_output" to specify type of output


Added: trunk/compilers/pirc/src/no_output.c
==============================================================================
--- (empty file)
+++ trunk/compilers/pirc/src/no_output.c        Fri Mar 30 13:34:04 2007
@@ -0,0 +1,19 @@
+#include "pirvtable.h"
+#include "pirparser.h"
+#include <stdlib.h>
+
+
+static void
+none(struct parser_state *p) {
+       /* do nothing */        
+}
+
+pirvtable *
+init_none_vtable(void) {
+       pirvtable *vtable = (pirvtable *)malloc(sizeof(pirvtable));
+       
+       vtable->sub_start = none;
+       vtable->sub_end   = none;
+       
+       return vtable;
+}

Added: trunk/compilers/pirc/src/no_output.h
==============================================================================
--- (empty file)
+++ trunk/compilers/pirc/src/no_output.h        Fri Mar 30 13:34:04 2007
@@ -0,0 +1,8 @@
+#ifndef __NO_OUTPUT_H
+#  define __NO_OUTPUT_H
+
+struct pirvtable;
+
+extern struct pirvtable *init_none_vtable(void);
+
+#endif

Modified: trunk/compilers/pirc/src/pirmain.c
==============================================================================
--- trunk/compilers/pirc/src/pirmain.c  (original)
+++ trunk/compilers/pirc/src/pirmain.c  Fri Mar 30 13:34:04 2007
@@ -19,7 +19,7 @@
 
 
     /* create a new parser, specifying the file name */
-    p = new_parser(argv[1], OUTPUT_PAST);
+    p = new_parser(argv[1], OUTPUT_NONE);
 
     /* start parsing */
     TOP(p);

Modified: trunk/compilers/pirc/src/pirparser.c
==============================================================================
--- trunk/compilers/pirc/src/pirparser.c        (original)
+++ trunk/compilers/pirc/src/pirparser.c        Fri Mar 30 13:34:04 2007
@@ -59,6 +59,7 @@
 
 #include "pirout.h" /* for test output */
 #include "pastout.h" /* experimental output of PAST */
+#include "no_output.h"
 #include <stdio.h>
 #include <stdlib.h>
 #include <assert.h>
@@ -168,6 +169,9 @@
     p->heredoc_index = 0;
     
     switch (output) {
+        case OUTPUT_NONE:
+            p->vtable = init_none_vtable();
+            break;
         case OUTPUT_PIR:
             p->vtable = init_pir_vtable();
             break;
@@ -1811,7 +1815,6 @@
     emit_sub_start(p);    
     
     sub_flags(p);
-
     match(p, T_NEWLINE);
     parameters(p);
     instructions(p);

Modified: trunk/compilers/pirc/src/pirvtable.h
==============================================================================
--- trunk/compilers/pirc/src/pirvtable.h        (original)
+++ trunk/compilers/pirc/src/pirvtable.h        Fri Mar 30 13:34:04 2007
@@ -13,10 +13,13 @@
        
 } pirvtable;
 
+
+
 /* #defines for cleaner invocation syntax */
+#  define emit_sub_start(P)    (*P->vtable->sub_start)(P)
+#  define emit_sub_end(P)    (*P->vtable->sub_end)  (P)
+
 
-#  define emit_sub_start(P)    (*p->vtable->sub_start)(P)
-#  define emit_sub_end(P)      (*p->vtable->sub_end)  (P)
 
 #endif
 

Modified: trunk/config/gen/makefiles/pirc.in
==============================================================================
--- trunk/config/gen/makefiles/pirc.in  (original)
+++ trunk/config/gen/makefiles/pirc.in  Fri Mar 30 13:34:04 2007
@@ -36,11 +36,15 @@
   src/pirout.c \
   src/pirout.h \
   src/pastout.c \
-  src/pastout.h
+  src/pastout.h \
+  src/no_output.c \
+  src/no_output.h \
+  src/pirvtable.h 
 
 
-pirc: pirmain$(O) pirparser$(O) pirlexer$(O) pirout$(O) pastout$(O)
-       $(CC) -o pirc$(EXE) pirmain$(O) pirparser$(O) pirlexer$(O) pirout$(O) 
pastout$(O)
+pirc: pirmain$(O) pirparser$(O) pirlexer$(O) pirout$(O) pastout$(O) 
no_output$(O)
+       $(CC) -o pirc$(EXE) pirmain$(O) pirparser$(O) pirlexer$(O) pirout$(O) 
pastout$(O) \
+        no_output$(O)
 
 pirmain$(O): src/pirmain.c src/pirparser.h
        $(CC) $(CFLAGS) -c src/pirmain.c
@@ -57,6 +61,9 @@
 pastout$(O): src/pastout.c src/pastout.h
        $(CC) $(CFLAGS) -c src/pastout.c
 
+no_output$(O): src/no_output.c src/no_output.h
+       $(CC) $(CFLAGS) -c src/no_output.c
+
 # This is a listing of all targets, that are meant to be called by users
 help:
        @echo ""

Reply via email to