home *** CD-ROM | disk | FTP | other *** search
/ Amiga Elysian Archive / AmigaElysianArchive.iso / prog / utils / toolbox.lha / Toolbox / bin / lalr.rexx < prev    next >
OS/2 REXX Batch file  |  1993-03-14  |  1KB  |  48 lines

  1. /* lalr start-script */
  2.  
  3. usebnf   = 0
  4. bnffile  = "t:lalr.tmp"
  5. bnfargs  = ""
  6. lalrargs = ""
  7. infile   = ""
  8. status   = 0
  9.  
  10. PARSE ARG arguments
  11.  
  12. DO WHILE arguments ~= ""
  13.   arg = SUBWORD(arguments,1,1)
  14.   arguments = SUBWORD(arguments,2)
  15.   SELECT
  16.     WHEN arg = "-b" THEN usebnf = 1
  17.     WHEN arg = "-c" THEN DO
  18.       lalrargs = lalrargs || " " || arg
  19.       bnfargs  = bnfargs || " " || arg
  20.     END
  21.     WHEN arg = "-l" THEN DO
  22.       lalrargs = lalrargs || " " || arg
  23.       bnfargs  = bnfargs || " " || arg
  24.     END
  25.     WHEN arg = "-m" THEN DO
  26.       lalrargs = lalrargs || " " || arg
  27.       bnfargs  = bnfargs || " " || arg
  28.     END
  29.     WHEN arg = "-NoAction" THEN bnfargs = bnfargs || " " || arg
  30.     WHEN LEFT(arg,1) = "-" THEN lalrargs = lalrargs || " " || arg
  31.     WHEN VERIFY(LEFT(arg,1),"0123456789") = 0 THEN lalrargs = lalrargs || " " || arg
  32.     OTHERWISE infile = infile || " " || arg
  33.   END
  34. END
  35. infile   = STRIP(infile)
  36. lalrargs = STRIP(lalrargs)
  37. bnfargs  = STRIP(bnfargs)
  38.  
  39. IF usebnf = 1 THEN DO
  40.   SHELL COMMAND "toolbox:lib/lalr/bnf" ">" bnffile infile bnfargs
  41.   SHELL COMMAND "toolbox:lib/lalr/lalr" bnffile lalrargs
  42. END
  43. ELSE DO
  44.   SHELL COMMAND "toolbox:lib/lalr/lalr" infile lalrargs
  45. END
  46. SHELL COMMAND delete bnffile
  47. EXIT status
  48.