[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
    
    ?