[Assorted-commits] SF.net SVN: assorted: [210] simple-preprocessor/trunk/src
Brought to you by:
yangzhang
From: <yan...@us...> - 2008-01-03 11:12:42
|
Revision: 210 http://assorted.svn.sourceforge.net/assorted/?rev=210&view=rev Author: yangzhang Date: 2008-01-03 03:12:48 -0800 (Thu, 03 Jan 2008) Log Message: ----------- latest version of spp (done) Modified Paths: -------------- simple-preprocessor/trunk/src/Preprocessor.scala simple-preprocessor/trunk/src/spp.bash Modified: simple-preprocessor/trunk/src/Preprocessor.scala =================================================================== --- simple-preprocessor/trunk/src/Preprocessor.scala 2008-01-03 11:12:25 UTC (rev 209) +++ simple-preprocessor/trunk/src/Preprocessor.scala 2008-01-03 11:12:48 UTC (rev 210) @@ -2,18 +2,20 @@ import commons.Io._ import scala.collection.mutable._ import java.util.regex._ + object Preprocessor { val rules = new ArrayBuffer[(Pattern,String)] def main(args: Array[String]) { using (TextReader(System.in)) { r => for (line <- r.readLines) { - val toks = line.split("\\s",2) - if (toks(0) == "#define" && toks.length > 2) { - rules += (Pattern.compile("\\b" + toks(1) + "\\b"), toks(2)) + val toks = line.split("\\s+",3) + if (toks(0) == "#define" && toks.length >= 2) { + val expansion = if (toks.length == 3) toks(2) else "" + rules += (Pattern.compile("\\b" + toks(1) + "\\b"), expansion) } else { var munged = line - for ((pat,rep) <- rules) { - munged = pat matcher munged replaceAll toks(2) + for ((pat,exp) <- rules) { + munged = pat matcher munged replaceAll exp } println(munged) } Modified: simple-preprocessor/trunk/src/spp.bash =================================================================== --- simple-preprocessor/trunk/src/spp.bash 2008-01-03 11:12:25 UTC (rev 209) +++ simple-preprocessor/trunk/src/spp.bash 2008-01-03 11:12:48 UTC (rev 210) @@ -1,3 +1,4 @@ #!/usr/bin/env bash +make -C "$(dirname "$0")" > /dev/null scala -cp "$(dirname "$0")/out" Preprocessor This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |