[e-cvs] cvs commit: e/src/esrc/org/erights/e/tools/text subst.emaker
markm@eros.cs.jhu.edu
markm@eros.cs.jhu.edu
Thu, 16 Aug 2001 03:05:38 -0400
markm 01/08/16 03:05:38
Modified: src/esrc/org/erights/e/elang/cmd
controlLoopMakerAuthor.updoc
src/esrc/org/erights/e/elang/interp
PerlMatchMakerMaker.emaker
Added: src/esrc/org/erights/e/elang/cmd cmdLoopMakerAuthor.emaker
cmdLoopMakerAuthor.updoc
src/esrc/org/erights/e/tools/collect propUtils.emaker
propUtils.updoc
Removed: src/esrc/org/erights/e/tools/text subst.emaker
Log:
cmdLoop part of command line framework
Revision Changes Path
1.2 +4 -1 e/src/esrc/org/erights/e/elang/cmd/controlLoopMakerAuthor.updoc
Index: controlLoopMakerAuthor.updoc
===================================================================
RCS file: /cvs/e/src/esrc/org/erights/e/elang/cmd/controlLoopMakerAuthor.updoc,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- controlLoopMakerAuthor.updoc 2001/08/16 03:05:37 1.1
+++ controlLoopMakerAuthor.updoc 2001/08/16 07:05:38 1.2
@@ -1,7 +1,10 @@
? def QueueMaker := <unsafe:org.erights.e.elib.prim.Queue>
# value: <unsafe:org.erights.e.elib.prim.Queue>
- ? def controlLoopMaker := <import:org.erights.e.elang.cmd.controlLoopMakerAuthor>(QueueMaker)
+ ? def cmd__uriGetter := <import:org.erights.e.elang.cmd.*>
+ # value: <import:org.erights.e.elang.cmd.*>
+
+ ? def controlLoopMaker := <cmd:controlLoopMakerAuthor>(QueueMaker)
# value: <controlLoopMaker>
? def ctrl := controlLoopMaker new()
1.1 e/src/esrc/org/erights/e/elang/cmd/cmdLoopMakerAuthor.emaker
Index: cmdLoopMakerAuthor.emaker
===================================================================
def cmd__uriGetter := <import:org.erights.e.elang.cmd.*>
def propUtils := <import:org.erights.e.tools.collect.propUtils>
def cmdLoopMakerAuthor(QueueMaker, SystemGC) :any {
def controlLoopMaker := <cmd:controlLoopMakerAuthor>(QueueMaker)
class cmdLoopMaker(args, props, topScope) :any {
def super := controlLoopMaker new()
def topPov := topScope newPov()
var expandFlag :boolean :=
propUtils testProp(props, "e.interp.expand")
var verboseFlag :boolean :=
propUtils testProp(props, "e.interp.verbose")
def results := [] diverge()
def cmdLoop {
to getArgs() :any { args }
to getProps() :any { props }
to getExpand() :boolean { expandFlag }
to getVerbose() :boolean { verboseFlag }
to getInteractive() :boolean { true }
to setExpand(newFlag) { expandFlag := newFlag }
to setVerbose(newFlag) { verboseFlag := newFlag }
to getTopScope() :any { topPov[0] }
to getTopPov() :any { topPov }
to getResult(i) :any { results[i] }
to pushResult(result) {
results(0,0) := [result]
if (results size() > 10) {
results setSize(10)
}
}
to gc() {
results setSize(0)
SystemGC gc()
}
delegate { super }
}
}
}
1.1 e/src/esrc/org/erights/e/elang/cmd/cmdLoopMakerAuthor.updoc
Index: cmdLoopMakerAuthor.updoc
===================================================================
? def cmd__uriGetter := <import:org.erights.e.elang.cmd.*>
# value: <import:org.erights.e.elang.cmd.*>
? def QueueMaker := <unsafe:org.erights.e.elib.prim.Queue>
# value: <unsafe:org.erights.e.elib.prim.Queue>
? def SystemGC {
> to gc() {
> println("System.gc()")
> <unsafe:java.lang.System> gc()
> }
> }
# value: <SystemGC>
? def cmdLoopMaker := <cmd:cmdLoopMakerAuthor>(QueueMaker, SystemGC)
# value: <cmdLoopMaker>
? def ScopeImplMaker := <unsafe:org.erights.e.elang.scope.ScopeImpl>
# value: <unsafe:org.erights.e.elang.scope.ScopeImpl>
? def scope := ScopeImplMaker new([])
# value: org.erights.e.elang.scope.ScopeImpl@38b82
? scope asMap()
# value: [] asMap
? def cmdLoop := cmdLoopMaker new(["a", "b"],
> interp getProps(),
> scope)
# value: <cmdLoop>
? cmdLoop getArgs()
# value: ["a", "b"]
? cmdLoop getProps() size()
# value: 78
? cmdLoop getExpand()
# value: false
? cmdLoop setExpand(true)
? cmdLoop getExpand()
# value: true
? cmdLoop pushResult("x")
? cmdLoop pushResult("y")
? cmdLoop getResult(0)
# value: "y"
? cmdLoop getResult(1)
# value: "x"
? cmdLoop getResult(2)
# problem: <IndexOutOfBoundsException: 2 must be below 2>
#
# ["y", "x"] diverge get(2)
# <cmdLoop> getResult(2)
# <interactive interp> evalPrint(e`cmdLoop getResult(2)`)
? cmdLoop pushResult("z")
? cmdLoop getResult(0)
# value: "z"
? cmdLoop getResult(2)
# value: "x"
? cmdLoop gc()
System.gc()
? cmdLoop getResult(0)
# problem: <IndexOutOfBoundsException: 0 must be below 0>
#
# [] diverge get(0)
# <cmdLoop> getResult(0)
# <interactive interp> evalPrint(e`cmdLoop getResult(0)`)
?
1.23 +1 -3 e/src/esrc/org/erights/e/elang/interp/PerlMatchMakerMaker.emaker
Index: PerlMatchMakerMaker.emaker
===================================================================
RCS file: /cvs/e/src/esrc/org/erights/e/elang/interp/PerlMatchMakerMaker.emaker,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -r1.22 -r1.23
--- PerlMatchMakerMaker.emaker 2001/08/08 05:39:17 1.22
+++ PerlMatchMakerMaker.emaker 2001/08/16 07:05:38 1.23
@@ -5,7 +5,6 @@
def PatternMatcherInputMaker := <regex:PatternMatcherInput>
def erights__uriGetter := <import:org.erights.*>
-def subst := <erights:e.tools.text.subst>
# IdentityCacheTable is unsafe. It violates emaker rules
# def CacheMaker := <erights:e.elib.tables.IdentityCacheTable>
@@ -94,8 +93,7 @@
}
}
}
- perlPattern := subst(perlPattern, "@@", "@")
- perlPattern := subst(perlPattern, "$$", "$")
+ perlPattern := perlPattern replaceAll("@@", "@") replaceAll("$$", "$")
[perlPattern, indexMap snapshot()]
}
1.1 e/src/esrc/org/erights/e/tools/collect/propUtils.emaker
Index: propUtils.emaker
===================================================================
def propUtils {
to testProp(props, propName) :boolean {
def propValue := props get(propName, "false")
switch (propValue) {
match `true` { true }
match `false` { false }
match _ { throw(`$propValue must be true or false`) }
}
}
}
1.1 e/src/esrc/org/erights/e/tools/collect/propUtils.updoc
Index: propUtils.updoc
===================================================================
? def propUtils := <import:org.erights.e.tools.collect.propUtils>
# value: <propUtils>
? def props := interp getProps(); null
? propUtils testProp(props, "e.bogusFlag")
# value: false
? propUtils testProp(props, "e.version")
# problem: 0.8.9zb must be true or false
#
# throw("0.8.9zb must be true or false")
# <propUtils> testProp(["java.vendor" => "Sun Microsystems Inc.", "e.e...", "e.javacmd" => "d:/jdk1.3.1/bin/java.exe"], "e.version")
# <interactive interp> evalPrint(e`propUtils testProp(props, "e.version")`)
? propUtils testProp(props, "e.enable.bind")
# value: true
? propUtils testProp(props, "e.enable.auditors")
# value: false
?