#!/bin/csh 

set LCPATH = .

$LCPATH/luca_lex $1 >& /tmp/$$.lex
grep "ERROR" /tmp/$$.lex
if ($status == 0) goto done
if ($3 == "lex") then
   cat /tmp/$$.lex
   goto done
endif

cat /tmp/$$.lex | $LCPATH/luca_parse > /tmp/$$.parse
grep "ERROR" /tmp/$$.parse
if ($status == 0) goto done
if ($3 == "parse") then
   cat /tmp/$$.parse
   goto done
endif

cat /tmp/$$.parse | $LCPATH/luca_sem -agvm > /tmp/$$.sem
grep "ERROR" /tmp/$$.sem
if ($status == 0) goto done
if ($3 == "sem") then
   cat /tmp/$$.sem
   goto done
endif

cat /tmp/$$.sem | $LCPATH/luca_AST2tree -agvm > /tmp/$$.tree
if ($3 == "tree") then
   cat /tmp/$$.tree
   goto done
endif

cat /tmp/$$.tree | $LCPATH/luca_tree2stack > /tmp/$$.stack
if ($3 == "stack") then
   cat /tmp/$$.stack
   goto done
endif

if ($3 == "quad") then
   cat /tmp/$$.tree | $LCPATH/luca_tree2quad > /tmp/$$.quad
   cat /tmp/$$.quad
   goto done
endif

if ($3 == "triple") then
   cat /tmp/$$.tree | $LCPATH/luca_tree2triple > /tmp/$$.triple
   cat /tmp/$$.triple
   goto done
endif

cat /tmp/$$.stack | $LCPATH/luca_stack2vm 

done:
/bin/rm /tmp/$$.*

