[e-cvs] cvs commit: e/src/jsrc/org/quasiliteral/term Functor.java

markm@eros.cs.jhu.edu markm@eros.cs.jhu.edu
Sat, 10 Nov 2001 14:40:54 -0500


markm       01/11/10 14:40:53

  Modified:    src/esrc/com/skyhunter/e/lang
                        runConfinedSourceFuncAuthor.emaker
                        sourceRunnerAuthor.emaker
               src/esrc/com/skyhunter/e/net vowToolsMaker.emaker
               src/esrc/com/skyhunter/e/security
                        oldPowerboxControllerMakerAuthor.emaker
                        powerBoxControllerMakerAuthorTester.e
                        powerboxControllerMakerAuthor.emaker
               src/esrc/com/skyhunter/e/util domFromTextFunc.emaker
                        domTreeKit.emaker extractChildNodesFunc.emaker
                        mapDomText.emaker mapDomTextFunc.emaker
                        testDomTreeKit.e timer.e
               src/esrc/com/skyhunter/eDesk capLauncherAuthor.emaker
                        installedAppsManagerMaker.emaker
                        navPanelControllerMakerAuthor.emaker
                        progressWindowMakerAuthor.emaker
                        serverDescVowAuthor.emaker
               src/esrc/com/skyhunter/eDesk/icons folder.gif
               src/esrc/com/skyhunter/ex/swing capFrameMakerAuthor.emaker
                        dialogVowMakerAuthor.emaker
                        standardWindowMakerAuthor.emaker
               src/esrc/com/skyhunter/installer
                        agreedCapsPetsVowMakerAuthor.emaker
                        persistentInstallerAuthor.emaker
                        stringDataKit.emaker testAgreedCapsVow.e
               src/esrc/org/erights/e/tools/text abbrev.emaker
               src/esrc/scripts eBrowser.e
               src/jsrc/net/ertp Assay.java
                        InsufficientERightsException.java Issuer.java
               src/jsrc/net/vattp/data AuthSecrets.java
                        ConnectionAttemptFailed.java
                        ConnectionShutDownException.java DES.java
                        DataCommThunk.java DataPath.java Decrypt3DES.java
                        EARL.java Encrypt3DES.java ListenThread.java
                        Msg.java MsgTransformer.java NetAddr.java
                        NetConfig.java RecvThread.java SendThread.java
                        StartUpProtocol.java StreamMessage.java
                        Suspend.java TripleDESKeyConstructor.java
                        UserThread.java VatIdentity.java
                        VatTPConnection.java
               src/jsrc/org/erights/build EYaccFixer.java
               src/jsrc/org/erights/e/develop/assertion Assertion.java
                        AssertionFailed.java
               src/jsrc/org/erights/e/develop/exception ExceptionMgr.java
                        ExceptionNoticer.java NestedError.java
                        NestedException.java NestedIOException.java
                        PrintStreamWriter.java ThrowableSugar.java
               src/jsrc/org/erights/e/develop/format ETimeFormat.java
                        StringHelper.java
               src/jsrc/org/erights/e/develop/trace Trace.java
                        TraceBuffer.java TraceCaller.java
                        TraceConstants.java TraceController.java
                        TraceDateToString.java TraceLevelTranslator.java
                        TraceLog.java TraceLogDescriptor.java
                        TraceMessage.java TraceMessageAcceptor.java
                        TraceMessageStringifier.java
                        TraceSubsystemMediator.java
                        TraceTxtVersionNamer.java TraceVersionNamer.java
               src/jsrc/org/erights/e/elang/evm AssignExpr.java
                        CallExpr.java CatchExpr.java CdrPattern.java
                        DefineExpr.java EExpr.java EImpl.java
                        EImplByProxy.java EMeta.java EMethod.java
                        EMethodNode.java ENode.java EScript.java
                        EscapeExpr.java FinalPattern.java FinallyExpr.java
                        FrameFinalNounExpr.java FrameSlotNounExpr.java
                        HideExpr.java IfExpr.java IgnorePattern.java
                        ListPattern.java LiteralExpr.java
                        LiteralNounExpr.java LiteralSlotNounExpr.java
                        LocalFinalNounExpr.java LocalSlotNounExpr.java
                        MatchBindExpr.java Matcher.java MetaExpr.java
                        NounExpr.java NounPattern.java ObjectExpr.java
                        OuterNounExpr.java Pattern.java
                        QuasiLiteralExpr.java QuasiLiteralPatt.java
                        QuasiPatternExpr.java QuasiPatternPatt.java
                        ScopeExpr.java SendExpr.java SeqExpr.java
                        SlotExpr.java StaticScope.java SuchThatPattern.java
                        VarPattern.java
               src/jsrc/org/erights/e/elang/interp Help.java
                        InteractiveInterp.java Interp.java
                        LazyEvalSlot.java Loader.java LoaderScope.java
                        Loop.java PackageScope.java ProtocolDesc.java
                        ResourceUriGetter.java ScopeSetup.java
                        URLGetter.java UnsafeLoaderScope.java
               src/jsrc/org/erights/e/elang/scope EvalContext.java
                        InnerScope.java OuterScope.java Scope.java
                        ScopeMap.java UndefinedVariableException.java
               src/jsrc/org/erights/e/elang/syntax Assoc.java EBuilder.java
                        ELexer.java EParser.java FileFeeder.java
                        HilbertHotel.java Indenter.java LineFeeder.java
                        MsgPatt.java NeedMoreException.java
                        PrettyFeeder.java QuasiFeeder.java
                        SyntaxException.java TwineFeeder.java URI.java
               src/jsrc/org/erights/e/elang/visitors
                        AlphaRenameVisitor.java BindFramesVisitor.java
                        CopyVisitor.java ETreeVisitor.java
                        RenameVisitor.java
               src/jsrc/org/erights/e/elib/base ClassDesc.java
                        Ejection.java Ejector.java MessageDesc.java
                        MethodNode.java ParamDesc.java ParseNode.java
                        SourceSpan.java TypeDesc.java
               src/jsrc/org/erights/e/elib/deflect Deflector.java
               src/jsrc/org/erights/e/elib/eio NonBlockingInputStream.java
                        TextReader.java TextWriter.java
               src/jsrc/org/erights/e/elib/prim BERunner.java
                        CallThunk.java ConstructorNode.java E.java
                        FEProblemHandler.java FERunner.java
                        FERunnerEvent.java InstanceMethodNode.java
                        JavaMemberNode.java Message.java
                        MirandaMethods.java NowRunnable.java
                        OverloaderNode.java PendingEvent.java Queue.java
                        Runner.java RunnerThread.java
                        SacrificialComponent.java ScriptMaker.java
                        ShutDownVatException.java StaticMaker.java
                        StaticMethodNode.java SugarMethodNode.java
                        SynchQueue.java Thrower.java VTable.java
                        VarGetterNode.java VarSetterNode.java WeakPtr.java
                        WeakPtrThread.java
               src/jsrc/org/erights/e/elib/prim/tests A.java ERunDemo.java
               src/jsrc/org/erights/e/elib/quasi Identifiers.java
                        IncompleteQuasiException.java MatchMaker.java
                        SimpleQuasiParser.java Substituter.java
               src/jsrc/org/erights/e/elib/ref BufferingRef.java
                        DisconnectedRef.java ExternalRef.java FarRef.java
                        LocalResolver.java NearRef.java
                        OneArgFuncAdapter.java Proxy.java
                        ProxyResolver.java Ref.java RemotePromise.java
                        ResultResolver.java SlotRef.java StemCell.java
                        SwitchableRef.java UnconnectedRef.java
                        ViciousCycleException.java WhenBrokenReactor.java
                        WhenResolvedReactor.java
               src/jsrc/org/erights/e/elib/sealing Unsealer.java
                        UnsealingException.java
               src/jsrc/org/erights/e/elib/serial PassByConstruction.java
                        PassByConstructionGuard.java PassByProxy.java
                        PassByProxyGuard.java PersistenceReplacer.java
                        PersistenceResolver.java Persistent.java
                        RemoteCall.java RemoteDelivery.java Serializer.java
                        Unserializer.java
               src/jsrc/org/erights/e/elib/slot FinalSlotMaker.java
                        NullOkMaker.java RuinedSlot.java SettableSlot.java
                        SettableSlotMaker.java SimpleSlot.java
                        SimpleSlotMaker.java SlotDefiner.java
                        VoidMaker.java
               src/jsrc/org/erights/e/elib/tables ArrayedList.java
                        AtomicTwine.java Column.java CompositeTwine.java
                        ConstList.java ConstListImpl.java ConstMap.java
                        ConstMapImpl.java CycleBreaker.java EList.java
                        EMap.java EmptyTwine.java EqualityKeyColumn.java
                        Equalizer.java FlexList.java FlexListImpl.java
                        FlexMap.java FlexMapImpl.java
                        IdentityCacheTable.java IdentityKeyColumn.java
                        IdentityMap.java IndirectCompFunc.java
                        IntColumn.java IntTable.java KeyColumn.java
                        LocatedTwine.java NotSettledException.java
                        ROList.java ROMap.java RefColumn.java
                        SamenessKeyColumn.java ScalarColumn.java
                        Selfless.java ShareCount.java SimpleCompFunc.java
                        SimpleTwine.java Twine.java VoidColumn.java
                        WeakKey.java WeakKeyMap.java WeakValue.java
                        WeakValueMap.java
               src/jsrc/org/erights/e/elib/tests TestELib.java
                        TestMultiQ.java TestMultiQMain.java
               src/jsrc/org/erights/e/elib/util
                        AlreadyDefinedException.java
                        ArityMismatchException.java ClassCache.java
                        ConditionLock.java DynamicCollection.java
                        DynamicCollectionEnumeration.java
                        HexStringUtils.java IdentityFunc.java
                        TwineException.java
               src/jsrc/org/erights/e/extern/file ConsoleMaker.java
                        ConsoleThread.java
               src/jsrc/org/erights/e/extern/timer Clock.java Timeout.java
                        Timer.java TimerQEntry.java TimerThread.java
                        TimerWatcher.java
               src/jsrc/org/erights/e/meta/java/awt ComponentSugar.java
                        ContainerSugar.java
               src/jsrc/org/erights/e/meta/java/awt/event
                        WindowEventSugar.java
               src/jsrc/org/erights/e/meta/java/io BufferedReaderSugar.java
                        FileGetter.java FileSugar.java
                        InputStreamSugar.java ReadOnlyFile.java
                        ReaderSugar.java
               src/jsrc/org/erights/e/meta/java/lang BooleanSugar.java
                        Bufferer.java ByteGuardSugar.java
                        CharacterSugar.java DoubleGuardSugar.java
                        DoubleSugar.java FloatGuardSugar.java
                        IntegerGuardSugar.java LongGuardSugar.java
                        ProcessSugar.java ShortGuardSugar.java
                        StringBufferSugar.java ThrowableGuardSugar.java
                        VoidGuardSugar.java
               src/jsrc/org/erights/e/meta/java/math
                        BigIntegerGuardSugar.java BigIntegerMakerSugar.java
                        BigIntegerSugar.java
               src/jsrc/org/erights/e/meta/java/net URLSugar.java
               src/jsrc/org/erights/e/meta/java/util DictionarySugar.java
                        EnumerationSugar.java VectorSugar.java
               src/jsrc/org/erights/e/ui/elmer EInterpAdapter.java
                        ElmerMain.java
               src/jsrc/org/erights/e/ui/jed BrickLayer.java EAction.java
                        EActionListener.java EDismissListener.java
                        EItemListener.java EMenuBar.java
                        ETextChangedListener.java EditGroup.java
                        JedMain.java
               src/jsrc/org/quasiliteral/astro Astro.java
                        AstroLexerSharedInputState.java AstroToken.java
               src/jsrc/org/quasiliteral/term Functor.java
  Added:       src/esrc/com/skyhunter/e/icons backArrow.gif fileOpen.gif
                        folder.gif forwardArrow.gif help.gif
                        lightning16x16.gif magnify.gif print2.gif stop.gif
                        text16x16.gif upArrow.gif webpage16x16.gif
               src/esrc/com/skyhunter/eDesk/icons folderOld.gif
  Removed:     src/esrc/com/skyhunter/e/security capWTMakerAuthorOld.emaker
               src/esrc/com/skyhunter/eBrowser analyzeOutlineFunc.emaker
                        outlineAnalyzer.emaker
               src/esrc/com/skyhunter/eBrowser/ebScripts countLines.emaker
                        indentSpaces.emaker indentTabs.emaker
               src/esrc/com/skyhunter/eDesk quickEditMakerAuthor.emaker
               src/esrc/com/skyhunter/eDeskPlus capLauncherAuthor.emaker
                        progressWindowMakerAuthor.emaker
                        quickEditMakerAuthor.emaker
               src/esrc/com/skyhunter/eDeskPlus/icons goto.gif home.gif
                        refresh.gif up.gif
               src/esrc/com/skyhunter/eDeskPlus/strings about.txt help.txt
               src/esrc/com/skyhunter/ex/swing dialogPromiserAuthor.emaker
                        dialogPromiserAuthorOld.emaker
               src/esrc/com/skyhunter/installer
                        agreedCapPromiserAuthorTester.e
                        agreedCapVowMakerAuthorTest.e
                        agreedCapsXMLPromiserAuthor.emaker
               src/esrc/com/skyhunter/testCaplet
                        helloWorldCapletAuthor.caplet
                        helloWorldCapletAuthor.emaker
                        helloWorldCapletPlusAuthor.emaker
                        helloWorldPlusTester.e helloWorldTester.e
                        testCapletAuthor.emaker testLauncher.e
                        testLauncherOld.e
  Log:
  tabs, reformatting, little things

Revision  Changes    Path
1.1                  e/src/esrc/com/skyhunter/e/icons/backArrow.gif

Index: backArrow.gif
===================================================================
GIF89a
(P 



1.1                  e/src/esrc/com/skyhunter/e/icons/fileOpen.gif

Index: fileOpen.gif
===================================================================
GIF89a


1.1                  e/src/esrc/com/skyhunter/e/icons/folder.gif

Index: folder.gif
===================================================================
GIF89a
(P
(p
8P
(p
(p


1.1                  e/src/esrc/com/skyhunter/e/icons/forwardArrow.gif

Index: forwardArrow.gif
===================================================================
GIF89a
(P@
(


1.1                  e/src/esrc/com/skyhunter/e/icons/help.gif

Index: help.gif
===================================================================
GIF89a


1.1                  e/src/esrc/com/skyhunter/e/icons/lightning16x16.gif

Index: lightning16x16.gif
===================================================================
GIF89a
P
$( 
$H
	
$


1.1                  e/src/esrc/com/skyhunter/e/icons/magnify.gif

Index: magnify.gif
===================================================================
GIF89a


1.1                  e/src/esrc/com/skyhunter/e/icons/print2.gif

Index: print2.gif
===================================================================
GIF89a


1.1                  e/src/esrc/com/skyhunter/e/icons/stop.gif

Index: stop.gif
===================================================================
GIF89a
8p
( 
(P @


1.1                  e/src/esrc/com/skyhunter/e/icons/text16x16.gif

Index: text16x16.gif
===================================================================
GIF89a


1.1                  e/src/esrc/com/skyhunter/e/icons/upArrow.gif

Index: upArrow.gif
===================================================================
GIF89a



1.1                  e/src/esrc/com/skyhunter/e/icons/webpage16x16.gif

Index: webpage16x16.gif
===================================================================
GIF89a
(P@



1.2       +29 -29    e/src/esrc/com/skyhunter/e/lang/runConfinedSourceFuncAuthor.emaker

Index: runConfinedSourceFuncAuthor.emaker
===================================================================
RCS file: /cvs/e/src/esrc/com/skyhunter/e/lang/runConfinedSourceFuncAuthor.emaker,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- runConfinedSourceFuncAuthor.emaker	2001/09/12 00:01:50	1.1
+++ runConfinedSourceFuncAuthor.emaker	2001/11/10 19:40:35	1.2
@@ -1,33 +1,33 @@
 
 //Copyright (C) 2001 Combex. All Rights Reserved.
 def sourceRunnerAuthor(unsafe__uriGetter, interp, traceln, stdout) :near {
-	def runSource(sourceText) :near {
-		def interpret() :any {
-			traceln("starting run prep")
-			def ScopeSetupMaker := <unsafe:org.erights.e.elang.interp.ScopeSetup>
-			var scope := ScopeSetupMaker universal()
-			def subInterp {
-				to blockAtTop() {
-					# ignored
-				}
-				to continueAtTop() {
-					# ignored
-				}
-				delegate { interp }
-			}
-			scope := scope sprout() bindFinal("interp", subInterp)
-			traceln("made scope 2")
-			try {
-				def tree := e__quasiParser(sourceText)
-				def result := tree eval(scope newPov())
-				traceln("\n# value: " + result)
-				traceln("shown")
-				result
-			} catch problem {
-				traceln("\n# problem: " + problem)
-				traceln("problem shown")
-			}
-		}
-		interpret()
-	}
+    def runSource(sourceText) :near {
+        def interpret() :any {
+            traceln("starting run prep")
+            def ScopeSetupMaker := <unsafe:org.erights.e.elang.interp.ScopeSetup>
+            var scope := ScopeSetupMaker universal()
+            def subInterp {
+                to blockAtTop() {
+                    # ignored
+                }
+                to continueAtTop() {
+                    # ignored
+                }
+                delegate { interp }
+            }
+            scope := scope sprout() bindFinal("interp", subInterp)
+            traceln("made scope 2")
+            try {
+                def tree := e__quasiParser(sourceText)
+                def result := tree eval(scope newPov())
+                traceln("\n# value: " + result)
+                traceln("shown")
+                result
+            } catch problem {
+                traceln("\n# problem: " + problem)
+                traceln("problem shown")
+            }
+        }
+        interpret()
+    }
 }



1.3       +29 -29    e/src/esrc/com/skyhunter/e/lang/sourceRunnerAuthor.emaker

Index: sourceRunnerAuthor.emaker
===================================================================
RCS file: /cvs/e/src/esrc/com/skyhunter/e/lang/sourceRunnerAuthor.emaker,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- sourceRunnerAuthor.emaker	2001/09/12 00:01:50	1.2
+++ sourceRunnerAuthor.emaker	2001/11/10 19:40:35	1.3
@@ -1,33 +1,33 @@
 
 //Copyright (C) 2001 Combex. All Rights Reserved.
 def sourceRunnerAuthor(unsafe__uriGetter, interp, traceln, stdout) :near {
-	def runSource(sourceText) :near {
-		def interpret() :any {
-			traceln("starting run prep")
-			def ScopeSetupMaker := <unsafe:org.erights.e.elang.interp.ScopeSetup>
-			var scope := ScopeSetupMaker privileged(false, stdout, stdout, interp)
-			def subInterp {
-				to blockAtTop() {
-					# ignored
-				}
-				to continueAtTop() {
-					# ignored
-				}
-				delegate { interp }
-			}
-			scope := scope sprout() bindFinal("interp", subInterp)
-			traceln("made scope 2")
-			try {
-				def tree := e__quasiParser(sourceText)
-				def result := tree eval(scope newPov())
-				traceln("\n# value: " + result)
-				traceln("shown")
-				result
-			} catch problem {
-				traceln("\n# problem: " + problem)
-				traceln("problem shown")
-			}
-		}
-		interpret()
-	}
+    def runSource(sourceText) :near {
+        def interpret() :any {
+            traceln("starting run prep")
+            def ScopeSetupMaker := <unsafe:org.erights.e.elang.interp.ScopeSetup>
+            var scope := ScopeSetupMaker privileged(false, stdout, stdout, interp)
+            def subInterp {
+                to blockAtTop() {
+                    # ignored
+                }
+                to continueAtTop() {
+                    # ignored
+                }
+                delegate { interp }
+            }
+            scope := scope sprout() bindFinal("interp", subInterp)
+            traceln("made scope 2")
+            try {
+                def tree := e__quasiParser(sourceText)
+                def result := tree eval(scope newPov())
+                traceln("\n# value: " + result)
+                traceln("shown")
+                result
+            } catch problem {
+                traceln("\n# problem: " + problem)
+                traceln("problem shown")
+            }
+        }
+        interpret()
+    }
 }



1.7       +94 -94    e/src/esrc/com/skyhunter/e/net/vowToolsMaker.emaker

Index: vowToolsMaker.emaker
===================================================================
RCS file: /cvs/e/src/esrc/com/skyhunter/e/net/vowToolsMaker.emaker,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- vowToolsMaker.emaker	2001/09/12 00:01:50	1.6
+++ vowToolsMaker.emaker	2001/11/10 19:40:35	1.7
@@ -1,97 +1,97 @@
 class vowToolsMaker() :any {
-	def vowTools {
-		# Send a list of promises, this will return a
-		# promise that will be fulfilled when all
-		# the promises in the list have resolved one
-		# way or the other. If any break, the allDone
-		# promise is smashed, with a list of the error
-		# messages, else it returns true.
-		# Some day, this should return a list of all the
-		# resolutions, with a smash if any of the promises
-		# were broken on delivery.
-		to promiseAllDone(thePromiseList) :any {
-			# resolves after all in list resolved, returns true if all promises fulfilled
-			def  [resolutionPromise,resolver] := PromiseMaker()
-			def promiseCount := thePromiseList size
-			define breakMessages := ""
-			if (promiseCount == 0) {resolver resolve(true)}
-			for each in thePromiseList {
-				each <- whenResolved(def obs(result) {
-					if (E isBroken(result)) {breakMessages += " :" +result}
-					promiseCount -= 1
-					if (promiseCount == 0) {
-						if (breakMessages size == 0) {
-							resolver resolve(true)
-						} else {
-							resolver smash(breakMessages)
-						}
-					}
-				})
-			}
-			resolutionPromise
-		}
-		# A vowsMonitor is an upscale promiseAllDone, collecting the
-		# promise list, the promise of completion, and the finishing
-		# process in a single object, making it convenient to pass
-		# around to various objects that must add a promise to the
-		# list and be informed when the list is finished.
-		# Add the promises one at a time to the vowsMonitor,
-		# get the promise of the finish when you want it
-		# and initiate the monitoring for completion by requesting
-		# a finishAll. Adding promises after the finishAll has been
-		# requested is currently an undetected error.
-		to makeVowsMonitor :any {
-			def [bundlePromise,resolver] := PromiseMaker()
-			def bundle := [] diverge
-			def vowsMonitor {
-				to add (thePromise) {bundle push(thePromise)}
-				to finishAll {resolver resolve(netTools promiseAllDone(bundle))}
-				to promiseFinish :any {bundlePromise}
-			}
-		}
-		# Only More Recent Manager:
-		# If you send out multiple requests over time, 
-		# resulting in receiving multiple promises also strewn over time,
-		# and if you are only interested
-		# in the answer if the answer is more recent 
-		# than the most recent of the already-fulfilled promises 
-		# (i.e., only if
-		# the answer is newer than what you currently have),
-		# and if you are not absolutely sure that all the 
-		# requests will move through a
-		# guaranteed sequence on a single vat,
-		# use an onlyMoreRecent object: add the promise
-		# to the onlyMoreRecent when you receive it, and use the promise returned from that operation in
-		# your when clause. If
-		# a newer promise gets fulfilled before an older promise, the older promise is smashed with an "Obsolete Data"
-		# error when it finally resolves.
-		# If a newest promise returns smashed, the promise from onlyMostRecent also is returned smashed,
-		# but with the error object it got from the
-		# original promise.
-		to makeOnlyMoreRecentAcceptor :any  {
-			def obsoleteError := "Obsolete Data"
-			def mostRecentlyFulfilledIndex := 0
-			def nextPromiseIndex := 1
-			def onlyMoreRecent {
-				to promiseMoreRecent(nextPromise) :any {
-					def [onlyMoreRecentPromise,resolver] := PromiseMaker()
-					def thisPromiseIndex := nextPromiseIndex
-					nextPromiseIndex += 1
-					when (nextPromise) -> done(resolution) {
-						if (thisPromiseIndex > mostRecentlyFulfilledIndex) {
-							resolver resolve(resolution)
-							mostRecentlyFulfilledIndex := thisPromiseIndex
-						} else { resolver smash(obsoleteError) }
-					} catch e {
-						if (thisPromiseIndex > mostRecentlyFulfilledIndex) {
-							resolver smash(e)
-							mostRecentlyFulfilledIndex := thisPromiseIndex
-						} else { resolver smash(obsoleteError) }
-					}
-					onlyMoreRecentPromise
-				}
-			}
-		}
-	}
+    def vowTools {
+        # Send a list of promises, this will return a
+        # promise that will be fulfilled when all
+        # the promises in the list have resolved one
+        # way or the other. If any break, the allDone
+        # promise is smashed, with a list of the error
+        # messages, else it returns true.
+        # Some day, this should return a list of all the
+        # resolutions, with a smash if any of the promises
+        # were broken on delivery.
+        to promiseAllDone(thePromiseList) :any {
+            # resolves after all in list resolved, returns true if all promises fulfilled
+            def  [resolutionPromise,resolver] := PromiseMaker()
+            def promiseCount := thePromiseList size
+            define breakMessages := ""
+            if (promiseCount == 0) {resolver resolve(true)}
+            for each in thePromiseList {
+                each <- whenResolved(def obs(result) {
+                    if (E isBroken(result)) {breakMessages += " :" +result}
+                    promiseCount -= 1
+                    if (promiseCount == 0) {
+                        if (breakMessages size == 0) {
+                            resolver resolve(true)
+                        } else {
+                            resolver smash(breakMessages)
+                        }
+                    }
+                })
+            }
+            resolutionPromise
+        }
+        # A vowsMonitor is an upscale promiseAllDone, collecting the
+        # promise list, the promise of completion, and the finishing
+        # process in a single object, making it convenient to pass
+        # around to various objects that must add a promise to the
+        # list and be informed when the list is finished.
+        # Add the promises one at a time to the vowsMonitor,
+        # get the promise of the finish when you want it
+        # and initiate the monitoring for completion by requesting
+        # a finishAll. Adding promises after the finishAll has been
+        # requested is currently an undetected error.
+        to makeVowsMonitor :any {
+            def [bundlePromise,resolver] := PromiseMaker()
+            def bundle := [] diverge
+            def vowsMonitor {
+                to add (thePromise) {bundle push(thePromise)}
+                to finishAll {resolver resolve(netTools promiseAllDone(bundle))}
+                to promiseFinish :any {bundlePromise}
+            }
+        }
+        # Only More Recent Manager:
+        # If you send out multiple requests over time,
+        # resulting in receiving multiple promises also strewn over time,
+        # and if you are only interested
+        # in the answer if the answer is more recent
+        # than the most recent of the already-fulfilled promises
+        # (i.e., only if
+        # the answer is newer than what you currently have),
+        # and if you are not absolutely sure that all the
+        # requests will move through a
+        # guaranteed sequence on a single vat,
+        # use an onlyMoreRecent object: add the promise
+        # to the onlyMoreRecent when you receive it, and use the promise returned from that operation in
+        # your when clause. If
+        # a newer promise gets fulfilled before an older promise, the older promise is smashed with an "Obsolete Data"
+        # error when it finally resolves.
+        # If a newest promise returns smashed, the promise from onlyMostRecent also is returned smashed,
+        # but with the error object it got from the
+        # original promise.
+        to makeOnlyMoreRecentAcceptor :any  {
+            def obsoleteError := "Obsolete Data"
+            def mostRecentlyFulfilledIndex := 0
+            def nextPromiseIndex := 1
+            def onlyMoreRecent {
+                to promiseMoreRecent(nextPromise) :any {
+                    def [onlyMoreRecentPromise,resolver] := PromiseMaker()
+                    def thisPromiseIndex := nextPromiseIndex
+                    nextPromiseIndex += 1
+                    when (nextPromise) -> done(resolution) {
+                        if (thisPromiseIndex > mostRecentlyFulfilledIndex) {
+                            resolver resolve(resolution)
+                            mostRecentlyFulfilledIndex := thisPromiseIndex
+                        } else { resolver smash(obsoleteError) }
+                    } catch e {
+                        if (thisPromiseIndex > mostRecentlyFulfilledIndex) {
+                            resolver smash(e)
+                            mostRecentlyFulfilledIndex := thisPromiseIndex
+                        } else { resolver smash(obsoleteError) }
+                    }
+                    onlyMoreRecentPromise
+                }
+            }
+        }
+    }
 }
 



1.3       +22 -22    e/src/esrc/com/skyhunter/e/security/oldPowerboxControllerMakerAuthor.emaker

Index: oldPowerboxControllerMakerAuthor.emaker
===================================================================
RCS file: /cvs/e/src/esrc/com/skyhunter/e/security/oldPowerboxControllerMakerAuthor.emaker,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- oldPowerboxControllerMakerAuthor.emaker	2001/09/12 00:01:50	1.2
+++ oldPowerboxControllerMakerAuthor.emaker	2001/11/10 19:40:36	1.3
@@ -2,9 +2,9 @@
 def powerboxControllerMakerAuthor(unsafe__uriGetter, file__uriGetter, resource__uriGetter, JPanel__quasiParser) :near {
     def uiKit := <import:com.skyhunter.ex.swing.uiToolsAuthor>(
         <unsafe:java.awt.*>, <unsafe:javax.swing.*>)
-	var stdErr := ""
+    var stdErr := ""
     def confinedRunner(sourceTwine) :any {
-		stdErr := ""
+        stdErr := ""
         def traceln(text) {stdErr := `$stdErr $text ${"<br>\n"}`}
         traceln("in confined runner, about to interpret")
         def interpret() :any {
@@ -24,7 +24,7 @@
             } catch problem {
                 traceln(`Error: ${"\n"}$problem`)
                 result := stdErr
-				throw 
+                throw
             }
             result
         }
@@ -46,11 +46,11 @@
             to requestBaseCapabilityVow(capName,justification) :any {}
             //general capability pops drag/drop dialog
             to requestCapabilityVow(capName, justification) :any {}
-			to getCapWT() :near {
-				def makerAuthor := <import:com.skyhunter.e.security.capWTMakerAuthor>
-				def maker := makerAuthor(<unsafe:java.awt.*>, <unsafe:javax.swing.*>, JPanel__quasiParser)
-				maker new(appImage, appTitle, powerbox)
-			}
+            to getCapWT() :near {
+                def makerAuthor := <import:com.skyhunter.e.security.capWTMakerAuthor>
+                def maker := makerAuthor(<unsafe:java.awt.*>, <unsafe:javax.swing.*>, JPanel__quasiParser)
+                maker new(appImage, appTitle, powerbox)
+            }
         }
         def powerboxController {
             to getPowerbox() :near {powerbox}
@@ -75,20 +75,20 @@
             }
         }
         def launchCaplet(source) :near {
-			try {
-			def maker := confinedRunner(source)
-			maker new(powerbox)
-			} catch err {
-				powerbox getCapWT() getDialogPromiser() new(
-					"Caplet failed",
-					`<html>Program runner trace: <br>
-					$stdErr <br>
-					Caplet execution output: <br>
-					$err`, 
-					null,
-					["OK"])
-			}
-				
+            try {
+            def maker := confinedRunner(source)
+            maker new(powerbox)
+            } catch err {
+                powerbox getCapWT() getDialogPromiser() new(
+                    "Caplet failed",
+                    `<html>Program runner trace: <br>
+                    $stdErr <br>
+                    Caplet execution output: <br>
+                    $err`,
+                    null,
+                    ["OK"])
+            }
+
         }
         def bind caplet := launchCaplet(capletSource)
         powerboxController



1.3       +20 -20    e/src/esrc/com/skyhunter/e/security/powerBoxControllerMakerAuthorTester.e

Index: powerBoxControllerMakerAuthorTester.e
===================================================================
RCS file: /cvs/e/src/esrc/com/skyhunter/e/security/powerBoxControllerMakerAuthorTester.e,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- powerBoxControllerMakerAuthorTester.e	2001/09/12 00:01:50	1.2
+++ powerBoxControllerMakerAuthorTester.e	2001/11/10 19:40:36	1.3
@@ -3,20 +3,20 @@
 
 def traceln := println
 def controllerMaker := <import:com.skyhunter.e.security.powerboxControllerMakerAuthor> run(
-	unsafe__uriGetter, file__uriGetter, interp, traceln, stdout)
+    unsafe__uriGetter, file__uriGetter, interp, traceln, stdout)
 
 traceln("created controller")
 def testCapletAuthor := <import:com.skyhunter.testCaplet.testCapletAuthor>
 traceln("created testcaplet author")
 def testAuthor(powerbox,b,c) :any {
-	def test {
-		to start() {
-			def traceln := powerbox optCap(powerbox TRACELN())
-			traceln("traced external caplet worked")
-		}
-	}
-	test start()
-	test
+    def test {
+        to start() {
+            def traceln := powerbox optCap(powerbox TRACELN())
+            traceln("traced external caplet worked")
+        }
+    }
+    test start()
+    test
 }
 
 traceln("created testAuthor")
@@ -24,7 +24,7 @@
 #test when caplet external
 def extController := controllerMaker new(null, "Test External Caplet",null, "<caps></caps>")
 println("starting external caplet")
-extController startExternalCaplet(testAuthor(extController getPowerbox(), null, null)) 
+extController startExternalCaplet(testAuthor(extController getPowerbox(), null, null))
 println("external caplet started")
 
 #test with caplet in emaker
@@ -35,17 +35,17 @@
 
 # test when powerbox launches
 def controller := controllerMaker new(
-	`def testAuthor(powerbox,b,c) :any {
-	def test {
-		to start() {
-			def traceln := powerbox optCap(powerbox TRACELN())
-			traceln("traced internal caplet with powerbox interpreting source, it worked")
-		}
-	}
-	test start()
-	test
+    `def testAuthor(powerbox,b,c) :any {
+    def test {
+        to start() {
+            def traceln := powerbox optCap(powerbox TRACELN())
+            traceln("traced internal caplet with powerbox interpreting source, it worked")
+        }
+    }
+    test start()
+    test
 }`,
-	"Test Caplet", null, "")
+    "Test Caplet", null, "")
 println("internal caplet started")
 def powerbox := controller getPowerbox()
 #def files := powerbox requestFilesPromise(true, "test dialog", "Just Because!", "", null)



1.5       +35 -10    e/src/esrc/com/skyhunter/e/security/powerboxControllerMakerAuthor.emaker

Index: powerboxControllerMakerAuthor.emaker
===================================================================
RCS file: /cvs/e/src/esrc/com/skyhunter/e/security/powerboxControllerMakerAuthor.emaker,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- powerboxControllerMakerAuthor.emaker	2001/10/27 17:27:42	1.4
+++ powerboxControllerMakerAuthor.emaker	2001/11/10 19:40:36	1.5
@@ -8,7 +8,7 @@
         awt__uriGetter, swing__uriGetter)
     def uiKit := <import:com.skyhunter.ex.swing.uiKitAuthor> (awt__uriGetter,swing__uriGetter)
     def runSource := <import:com.skyhunter.e.lang.runConfinedSourceFuncAuthor> run(unsafe__uriGetter, interp, traceln, stdout)
-    
+
     class localURIGetterMaker(directoryCanonicalPath) :near {
         def uriGetter {
             to get(relativePath) :near {
@@ -38,18 +38,34 @@
         //XXX document, when a caplet returns a copy or cut value, that
         //XXX value must implement both transferable and ClipboardOwner
         //XXX as does StringSelection
-        
-        def spinoffCapletSource(source) { 
-            def caplet := runSource(source)
-            traceln("ran source made caplet: " + caplet)
-            def capsPetsVow := <import:com.skyhunter.installer.agreedCapsPetsVowMakerAuthor>(unsafe__uriGetter, file__uriGetter) new(caplet getRequestedCaps(), "")
+
+        def spinoffCapletStream(stream) {
+            def io__uriGetter := <unsafe:java.io.*>
+            traceln("in powerbox spinoff caplet stream")
+            def readableStream := <io:BufferedReader> new(<io:InputStreamReader> new(stream))
+            def sourceBuffer := <unsafe:java.lang.StringBuffer> new()
+            while (true ) {
+                def next := readableStream readLine()
+                if (next == null) {
+                    break()
+                } else {E call(sourceBuffer,  "append(String)", [next + "\n"])}
+            }
+            traceln("finished looping stream")
+            def capletAuthor := runSource(sourceBuffer toString())
+
+            traceln("ran source made caplet: " + capletAuthor)
+            def requests := capletAuthor getRequestedCaps()
+            traceln("requests: " + requests)
+            def capsPetsVow := <import:com.skyhunter.installer.agreedCapsPetsVowMakerAuthor>(unsafe__uriGetter, file__uriGetter) new(requests, "")
             when (capsPetsVow) -> done(capsPets) {
                 traceln("got capsxml for spinoff")
                 def pets := capsPets getPetMap()
-                powerboxControllerMaker new(pets get("Name", "Caplet"), pets get("Icon", null), capsPets getCapsXML())
+                def spunPowerController := powerboxControllerMaker new(pets get("Name", "Caplet"), pets get("Icon", null), capsPets getCapsXML())
+                traceln("got spun power: " + spunPowerController)
+                spunPowerController startExternalCaplet(capletAuthor(spunPowerController getPowerbox(),awt__uriGetter, swing__uriGetter))
             } catch prob {traceln("incomplete installation of spinoff caplet" + prob)}
         }
-        
+
         class powerbarControllerMaker(eFrame) :near {
             def cutFunc() {
                 traceln("about to do cut reaction")
@@ -103,6 +119,12 @@
                         url
                     } else {null}
                 }
+                to relative(url, urlString) :near {
+                    if (agreedUrlsMap maps (url getProtocol())) {
+                        traceln("about to get relative url in powerbox")
+                        <unsafe:java.net.URL> new(url, urlString)
+                    } else {null}
+                }
                 to get(urlString) :near {urlMaker new(urlString)}
                 to getAgreedProtocols() :near {agreedUrlsMap snapshot()}
             }
@@ -135,7 +157,7 @@
                 def powerbarController := powerbarControllerMaker new(frame)
                 def outerContentPane :=
                   JPanel`$contentPane.X.Y
-		         ${powerbarController getPowerPanel()}`
+                         ${powerbarController getPowerPanel()}`
                 myJFrame setContentPane(outerContentPane)
                 frame
             }
@@ -183,6 +205,9 @@
             to subsetPowers(restrictedMap) :near {
                 throw("XXX not yet implemented")
             }
+            to requestFileRcvrsVow(editable, title, justification, startPathText, optFilter) :any {
+                powerbox requestFilesPromise(editable, title, justification, startPathText, optFilter)
+            }
             to requestFilesPromise(editable, title, justification, startPathText, filter) :any {
                 def answer := [] diverge()
                 def chooser := <swing:JFileChooser> new()
@@ -221,7 +246,7 @@
             }
             #XXX remove runSource sometime, when capability-free runconfined source emaker available
             to runSource(sourceText) :any {runSource(sourceText)}
-            to spinoffCapletSource(sourceText) {spinoffCapletSource(sourceText)}
+            to spinoffCapletStream(stream) {spinoffCapletStream(stream)}
             to getGifImage(gifFile) :near {<swing:ImageIcon> new(gifFile) getImage()}
             to CAP_TIMER() :any {"capTimer"}
             to FRAME_MAKER() :any {"frameMaker"}



1.2       +1 -1      e/src/esrc/com/skyhunter/e/util/domFromTextFunc.emaker

Index: domFromTextFunc.emaker
===================================================================
RCS file: /cvs/e/src/esrc/com/skyhunter/e/util/domFromTextFunc.emaker,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- domFromTextFunc.emaker	2001/09/12 00:01:51	1.1
+++ domFromTextFunc.emaker	2001/11/10 19:40:36	1.2
@@ -1,4 +1,4 @@
 //Copyright (C) 2001 Combex. All Rights Reserved.
 def domFromText(text) :near {
-	 (sml__quasiParser valueMaker(text) substitute(ListMaker run()))
+     (sml__quasiParser valueMaker(text) substitute(ListMaker run()))
 }



1.2       +44 -44    e/src/esrc/com/skyhunter/e/util/domTreeKit.emaker

Index: domTreeKit.emaker
===================================================================
RCS file: /cvs/e/src/esrc/com/skyhunter/e/util/domTreeKit.emaker,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- domTreeKit.emaker	2001/09/12 00:01:51	1.1
+++ domTreeKit.emaker	2001/11/10 19:40:36	1.2
@@ -1,50 +1,50 @@
 //Copyright (C) 2001 Combex. All Rights Reserved.
 def domTreeKit {
-	to domFromText(text) :near {
-		(sml__quasiParser valueMaker(text) substitute(ListMaker run()))
-	}
-	to extractChildNodes(tag, node) :near {
-		def nodes := [] diverge()
-		for each in node {
-			if (each getNodeType() == 1 && 
-				each getTagName() == tag) {
-				nodes push(each)			
-			} 
-		}
-		nodes snapshot()
-	}
+    to domFromText(text) :near {
+        (sml__quasiParser valueMaker(text) substitute(ListMaker run()))
+    }
+    to extractChildNodes(tag, node) :near {
+        def nodes := [] diverge()
+        for each in node {
+            if (each getNodeType() == 1 &&
+                each getTagName() == tag) {
+                nodes push(each)
+            }
+        }
+        nodes snapshot()
+    }
 
-	#returns a map with key=tag and value=textOfTheTag,
-	# where the first character of the key is always capitalized 
-	# (so a tag "foo" would yield a key "Foo")
-	to mapDomText(domTextNodes) :any {
-		def table := [] asKeys() diverge()
-		def nodeText(list) :String {
-			if (list size() == 1) {
-				list[0] getData()
-			} else if (list size() ==0 ) {
-				""
-			} else {
-				//badData, no way to inform
-			}
-		}
-		def visitor {
-			match [verb, args] {
-				if (verb =~ `visit@{theKey}`) {
-					table[theKey] := nodeText(args[0])
-				}
-			}
-		}
-		for each in domTextNodes {each welcome(visitor)}
-		table snapshot()
-	}
-	to xmlFromMap(map) :String {
-		var xml := ""
-		for key => value in map {
-			xml := `$xml<$key>$value</$key>${"\n"}`
-		}
-		xml
-	}
+    #returns a map with key=tag and value=textOfTheTag,
+    # where the first character of the key is always capitalized
+    # (so a tag "foo" would yield a key "Foo")
+    to mapDomText(domTextNodes) :any {
+        def table := [] asKeys() diverge()
+        def nodeText(list) :String {
+            if (list size() == 1) {
+                list[0] getData()
+            } else if (list size() ==0 ) {
+                ""
+            } else {
+                //badData, no way to inform
+            }
+        }
+        def visitor {
+            match [verb, args] {
+                if (verb =~ `visit@{theKey}`) {
+                    table[theKey] := nodeText(args[0])
+                }
+            }
+        }
+        for each in domTextNodes {each welcome(visitor)}
+        table snapshot()
+    }
+    to xmlFromMap(map) :String {
+        var xml := ""
+        for key => value in map {
+            xml := `$xml<$key>$value</$key>${"\n"}`
+        }
+        xml
+    }
 }
 
 



1.2       +8 -8      e/src/esrc/com/skyhunter/e/util/extractChildNodesFunc.emaker

Index: extractChildNodesFunc.emaker
===================================================================
RCS file: /cvs/e/src/esrc/com/skyhunter/e/util/extractChildNodesFunc.emaker,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- extractChildNodesFunc.emaker	2001/09/12 00:01:51	1.1
+++ extractChildNodesFunc.emaker	2001/11/10 19:40:36	1.2
@@ -1,12 +1,12 @@
 def extractChildNodes(tag, node) :near {
-	def nodes := [] diverge()
-	for each in node {
-		if (each getNodeType() == 1 && 
-			each getTagName() == tag) {
-			nodes push(each)			
-		} 
-	}
-	nodes snapshot()
+    def nodes := [] diverge()
+    for each in node {
+        if (each getNodeType() == 1 &&
+            each getTagName() == tag) {
+            nodes push(each)
+        }
+    }
+    nodes snapshot()
 }
 
  #def tree := sml`<a> <b> <c>blah</c></b></a>`



1.3       +20 -20    e/src/esrc/com/skyhunter/e/util/mapDomText.emaker

Index: mapDomText.emaker
===================================================================
RCS file: /cvs/e/src/esrc/com/skyhunter/e/util/mapDomText.emaker,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- mapDomText.emaker	2001/09/12 00:01:51	1.2
+++ mapDomText.emaker	2001/11/10 19:40:36	1.3
@@ -1,26 +1,26 @@
 //Copyright (C) 2001 Combex. All Rights Reserved.
 #returns a map with key=tag and value=textOfTheTag,
-# where the first character of the key is always capitalized 
+# where the first character of the key is always capitalized
 # (so a tag "foo" would yield a key "Foo")
 
 def mapDomText(domTextNodes) :any {
-	def table := [] asKeys() diverge()
-	def nodeText(list) :String {
-		if (list size() == 1) {
-			list[0] getData()
-		} else if (list size() ==0 ) {
-			""
-		} else {
-			//badData, no way to inform
-		}
-	}
-	def visitor {
-		match [verb, args] {
-			if (verb =~ `visit@{theKey}`) {
-				table[theKey] := nodeText(args[0])
-			}
-		}
-	}
-	for each in domTextNodes {each welcome(visitor)}
-	table snapshot()
+    def table := [] asKeys() diverge()
+    def nodeText(list) :String {
+        if (list size() == 1) {
+            list[0] getData()
+        } else if (list size() ==0 ) {
+            ""
+        } else {
+            //badData, no way to inform
+        }
+    }
+    def visitor {
+        match [verb, args] {
+            if (verb =~ `visit@{theKey}`) {
+                table[theKey] := nodeText(args[0])
+            }
+        }
+    }
+    for each in domTextNodes {each welcome(visitor)}
+    table snapshot()
 }



1.2       +19 -19    e/src/esrc/com/skyhunter/e/util/mapDomTextFunc.emaker

Index: mapDomTextFunc.emaker
===================================================================
RCS file: /cvs/e/src/esrc/com/skyhunter/e/util/mapDomTextFunc.emaker,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- mapDomTextFunc.emaker	2001/09/12 00:01:51	1.1
+++ mapDomTextFunc.emaker	2001/11/10 19:40:36	1.2
@@ -1,22 +1,22 @@
 //Copyright (C) 2001 Combex. All Rights Reserved.
 def mapDomText(domTextNodes) :any {
-	def table := [] asKeys() diverge()
-	def nodeText(list) :String {
-		if (list size() == 1) {
-			list[0] getData()
-		} else if (list size() ==0 ) {
-			""
-		} else {
-			//badData, no way to inform
-		}
-	}
-	def visitor {
-		match [verb, args] {
-			if (verb =~ `visit@{theKey}`) {
-				table[theKey] := nodeText(args[0])
-			}
-		}
-	}
-	for each in domTextNodes {each welcome(visitor)}
-	table snapshot()
+    def table := [] asKeys() diverge()
+    def nodeText(list) :String {
+        if (list size() == 1) {
+            list[0] getData()
+        } else if (list size() ==0 ) {
+            ""
+        } else {
+            //badData, no way to inform
+        }
+    }
+    def visitor {
+        match [verb, args] {
+            if (verb =~ `visit@{theKey}`) {
+                table[theKey] := nodeText(args[0])
+            }
+        }
+    }
+    for each in domTextNodes {each welcome(visitor)}
+    table snapshot()
 }



1.2       +3 -3      e/src/esrc/com/skyhunter/e/util/testDomTreeKit.e

Index: testDomTreeKit.e
===================================================================
RCS file: /cvs/e/src/esrc/com/skyhunter/e/util/testDomTreeKit.e,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- testDomTreeKit.e	2001/09/12 00:01:51	1.1
+++ testDomTreeKit.e	2001/11/10 19:40:36	1.2
@@ -1,9 +1,9 @@
 println("started test")
 def domTreeKit := <import:com.skyhunter.e.util.domTreeKit>
 def kitTest() {
-	def tree := sml`<a> <b> <c>blah</c></b></a>`
-	println("b of Tree: " + domTreeKit extractChildNodes("b", tree))
-	println("xmlFromMap: " + domTreeKit xmlFromMap(["A" => "1", "b" => "2"]))
+    def tree := sml`<a> <b> <c>blah</c></b></a>`
+    println("b of Tree: " + domTreeKit extractChildNodes("b", tree))
+    println("xmlFromMap: " + domTreeKit xmlFromMap(["A" => "1", "b" => "2"]))
 }
 kitTest()
 



1.7       +9 -9      e/src/esrc/com/skyhunter/e/util/timer.e

Index: timer.e
===================================================================
RCS file: /cvs/e/src/esrc/com/skyhunter/e/util/timer.e,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- timer.e	2001/09/12 00:01:51	1.6
+++ timer.e	2001/11/10 19:40:36	1.7
@@ -2,14 +2,14 @@
 
 //The actionTrio must be a list [target,"verb",[args]]
 def doAfter(seconds,actionTrio) :any {
-	def actionWrapper {
-		to run() {
-			#traceln("stopwatch: performing action" + actionTrio)
-			E call(actionTrio[0], actionTrio[1], actionTrio[2])
-			#traceln("stopwatch: action performed")
-		}
-	}
-	def timer := <import:org.erights.e.extern.timer.Timer> theTimer
-	timer after(seconds * 1000, actionWrapper)
+    def actionWrapper {
+        to run() {
+            #traceln("stopwatch: performing action" + actionTrio)
+            E call(actionTrio[0], actionTrio[1], actionTrio[2])
+            #traceln("stopwatch: action performed")
+        }
+    }
+    def timer := <import:org.erights.e.extern.timer.Timer> theTimer
+    timer after(seconds * 1000, actionWrapper)
 }
 



1.2       +21 -21    e/src/esrc/com/skyhunter/eDesk/capLauncherAuthor.emaker

Index: capLauncherAuthor.emaker
===================================================================
RCS file: /cvs/e/src/esrc/com/skyhunter/eDesk/capLauncherAuthor.emaker,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- capLauncherAuthor.emaker	2001/09/12 00:01:51	1.1
+++ capLauncherAuthor.emaker	2001/11/10 19:40:36	1.2
@@ -2,26 +2,26 @@
 //Copyright (C) 2001 Combex. All Rights Reserved.
 
 def capletLauncherAuthor(unsafe__uriGetter, file__uriGetter, interp, stdout) :any {
-	def swing__uriGetter := <unsafe:javax.swing.*>
-	def awt__uriGetter := <unsafe:java.awt.*>
-	def uiKit := <import:com.skyhunter.ex.swing.uiToolsAuthor> run(awt__uriGetter, swing__uriGetter)
-	def traceOut := <unsafe:java.lang.System> out()
-	def trace(text) {E call(traceOut, "print(Object)", [text])}
-	def traceln(text) {trace(text + "\n")}
+    def swing__uriGetter := <unsafe:javax.swing.*>
+    def awt__uriGetter := <unsafe:java.awt.*>
+    def uiKit := <import:com.skyhunter.ex.swing.uiToolsAuthor> run(awt__uriGetter, swing__uriGetter)
+    def traceOut := <unsafe:java.lang.System> out()
+    def trace(text) {E call(traceOut, "print(Object)", [text])}
+    def traceln(text) {trace(text + "\n")}
 
-	def launchCaplet(capletSourceFile) :any {
-		#def sourcePath := capletSourceFile getCanonicalPath()
-		#def capletNameRoot := capletSourceFile nameRoot???
-		#def sourceDir := capletSourceFile getDir()
-		#if (!(<file:installedApps> exists())) {<unsafe:java.io.File> mkdir("installedApps")}
-		#def outFile := <file: (capletNameRoot + year + month + day + hour + min + ".run")>
-		#def capletAuthor := <import:com.skyhunter.RUNSOURCE> run(capletSourceFile getText())
-		#def agreedCapsPromiser := <import:com.skyhunter.installer.agreedCapsXMLPromiserAuthor> run(
-		#	unsafe__uriGetter, file__uriGetter)
-		#def capsXMLVow := agreedCapsPromiser(capletAuthor getRequestedCaps())
-		#when (capsXMLVow) -> done(capsXML) {
-		#	outFile setText(capsXML)
-		#	mapInstalledRunFile(outFile)
-		#} catch prob {traceln("capsXML lost: " + prob)}
-	}
+    def launchCaplet(capletSourceFile) :any {
+        #def sourcePath := capletSourceFile getCanonicalPath()
+        #def capletNameRoot := capletSourceFile nameRoot???
+        #def sourceDir := capletSourceFile getDir()
+        #if (!(<file:installedApps> exists())) {<unsafe:java.io.File> mkdir("installedApps")}
+        #def outFile := <file: (capletNameRoot + year + month + day + hour + min + ".run")>
+        #def capletAuthor := <import:com.skyhunter.RUNSOURCE> run(capletSourceFile getText())
+        #def agreedCapsPromiser := <import:com.skyhunter.installer.agreedCapsXMLPromiserAuthor> run(
+        #    unsafe__uriGetter, file__uriGetter)
+        #def capsXMLVow := agreedCapsPromiser(capletAuthor getRequestedCaps())
+        #when (capsXMLVow) -> done(capsXML) {
+        #    outFile setText(capsXML)
+        #    mapInstalledRunFile(outFile)
+        #} catch prob {traceln("capsXML lost: " + prob)}
+    }
 }



1.2       +65 -62    e/src/esrc/com/skyhunter/eDesk/installedAppsManagerMaker.emaker

Index: installedAppsManagerMaker.emaker
===================================================================
RCS file: /cvs/e/src/esrc/com/skyhunter/eDesk/installedAppsManagerMaker.emaker,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- installedAppsManagerMaker.emaker	2001/09/12 00:01:51	1.1
+++ installedAppsManagerMaker.emaker	2001/11/10 19:40:36	1.2
@@ -1,64 +1,67 @@
 class installedAppsManagerMaker (appsXMLFile, traceln) :near {
-	def domTreeKit := <import:com.skyhunter.e.util.domTreeKit>
-	var appMapsBySourcePath := [] asKeys() diverge()
-	var appMapsByPetExtension := [] asKeys() diverge()
-	var appMapsByPetName := [] asKeys() diverge()
-	def addAppMap(map) {
-		appMapsBySourcePath[map["SourcePath"]] := map
-		if (map maps ("Suffix")) {appMapsByPetExtension[map["Suffix"]] := map}
-		if (map maps ("Name")) {appMapsByPetName[map["Name"]] := map}
-	}
-	def loadApps() {
-		appMapsBySourcePath := [] asKeys() diverge()
-		appMapsByPetExtension := [] asKeys() diverge()
-		appMapsByPetName := [] asKeys() diverge()
-		#traceln("about to get domm tree in appsManager loadapps: " + appsXMLFile getText())
-		def appsTree := domTreeKit domFromText(appsXMLFile getText())
-		#traceln("got dom tree in appsManager loadapps: " + appsTree)
-		#traceln("apps from tree: " + domTreeKit extractChildNodes("app", appsTree[0]))
-		for each in domTreeKit extractChildNodes("app", appsTree[0]) {
-			def nextAppMap := domTreeKit mapDomText(each)
-			addAppMap(nextAppMap)		
-		}
-		traceln("got app map in apps manager: " + appMapsBySourcePath)	
-	}
-	def saveApps() {
-		traceln("into saveApps in appsManager, appMaps: " + appMapsBySourcePath)
-		var xml := "<installed>\n"
-		for each in appMapsBySourcePath {
-			xml+= `<app>${"\n"}${domTreeKit xmlFromMap(each)}</app>` 
-		}
-		xml += "</installed>"
-		appsXMLFile setText(xml)
-		traceln("just set appsxmlfile text: " + xml)
-		traceln("the appsxmlfile is: " + appsXMLFile getCanonicalPath())
-	}
-	loadApps()
-	def installedAppsManager {
-		to getAppBySourcePath(path) :near {
-			traceln("getAppBySource: " + path)
-			#traceln("from appMaps: " + appMapsBySourcePath)
-			#appMapsBySourcePath[path]
-			appMapsBySourcePath[path]
-		}
-		to optAppBySourcePath(path) :near {appMapsBySourcePath get(path, null)}
-		to getAppPetNames() :pbc {
-			def names := [] diverge()
-			for each => value in appMapsByPetName {
-				names push(each)
-			}
-			names snapshot()
-		}
-		to optAppByPetName(name) :near {
-			traceln("optAppByPetname name: " + name)
-			appMapsByPetName get(name, null)
-		} 
-		to reload() {loadApps()}
-		to save() {saveApps()}
-		to addApp(appMap) {
-			addAppMap(appMap) 
-			saveApps()
-		}
-		to removeAppBySourcePath(sourcePath) {}
-	}
+    def domTreeKit := <import:com.skyhunter.e.util.domTreeKit>
+    var appMapsBySourcePath := [] asKeys() diverge()
+    var appMapsByPetExtension := [] asKeys() diverge()
+    var appMapsByPetName := [] asKeys() diverge()
+    def addAppMap(map) {
+        appMapsBySourcePath[map["SourcePath"]] := map
+        if (map maps ("Suffix")) {appMapsByPetExtension[map["Suffix"]] := map}
+        if (map maps ("Name")) {appMapsByPetName[map["Name"]] := map}
+    }
+    def loadApps() {
+        appMapsBySourcePath := [] asKeys() diverge()
+        appMapsByPetExtension := [] asKeys() diverge()
+        appMapsByPetName := [] asKeys() diverge()
+        #traceln("about to get domm tree in appsManager loadapps: " + appsXMLFile getText())
+        def appsTree := domTreeKit domFromText(appsXMLFile getText())
+        #traceln("got dom tree in appsManager loadapps: " + appsTree)
+        #traceln("apps from tree: " + domTreeKit extractChildNodes("app", appsTree[0]))
+        for each in domTreeKit extractChildNodes("app", appsTree[0]) {
+            def nextAppMap := domTreeKit mapDomText(each)
+            addAppMap(nextAppMap)
+        }
+        traceln("got app map in apps manager: " + appMapsBySourcePath)
+    }
+    def saveApps() {
+        traceln("into saveApps in appsManager, appMaps: " + appMapsBySourcePath)
+        var xml := "<installed>\n"
+        for each in appMapsBySourcePath {
+            xml+= `<app>${"\n"}${domTreeKit xmlFromMap(each)}</app>`
+        }
+        xml += "</installed>"
+        appsXMLFile setText(xml)
+        traceln("just set appsxmlfile text: " + xml)
+        traceln("the appsxmlfile is: " + appsXMLFile getCanonicalPath())
+    }
+    loadApps()
+    def installedAppsManager {
+        to getAppBySourcePath(path) :near {
+            traceln("getAppBySource: " + path)
+            #traceln("from appMaps: " + appMapsBySourcePath)
+            #appMapsBySourcePath[path]
+            appMapsBySourcePath[path]
+        }
+        to optAppBySourcePath(path) :near {appMapsBySourcePath get(path, null)}
+        to getAppPetNames() :pbc {
+            def names := [] diverge()
+            for each => value in appMapsByPetName {
+                names push(each)
+            }
+            names snapshot()
+        }
+        to optAppByPetName(name) :near {
+            traceln("optAppByPetname name: " + name)
+            appMapsByPetName get(name, null)
+        }
+        to optAppByPetSuffix(suffix) :near {
+            appMapsByPetExtension get(suffix, null)
+        }
+        to reload() {loadApps()}
+        to save() {saveApps()}
+        to addApp(appMap) {
+            addAppMap(appMap)
+            saveApps()
+        }
+        to removeAppBySourcePath(sourcePath) {}
+    }
 }



1.2       +15 -6     e/src/esrc/com/skyhunter/eDesk/navPanelControllerMakerAuthor.emaker

Index: navPanelControllerMakerAuthor.emaker
===================================================================
RCS file: /cvs/e/src/esrc/com/skyhunter/eDesk/navPanelControllerMakerAuthor.emaker,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- navPanelControllerMakerAuthor.emaker	2001/10/27 17:34:08	1.1
+++ navPanelControllerMakerAuthor.emaker	2001/11/10 19:40:36	1.2
@@ -65,7 +65,7 @@
         }
     }
     
-    class cellMaker(var name, isDir) :near {
+    class cellMaker(var name, isDir, suffixMapper) :near {
         var component := null
         var label := null
         var icon := null
@@ -75,7 +75,16 @@
                 if (component != null) {
                     component
                 } else {
-                    icon := if (isDir) {dirIcon} else {unAssociatedIcon}
+                    var icon := unAssociatedIcon
+                    if (isDir) {
+                        icon := dirIcon
+                    } else { 
+                        def optApp := suffixMapper optAppByPetSuffix(computeSuffix(name)) 
+                        if (optApp != null) {
+                            traceln ("found suffix app: " + optApp)
+                            icon := <swing:ImageIcon> new(optApp["Icon"])
+                        } 
+                    }
                     iconPane := <swing:JLabel> new(icon)
                     iconPane setIcon(icon)
                     label := <swing:JTextField> new(name)
@@ -94,13 +103,13 @@
         }
     }
     
-    def composeCellArray(dirsFiles) :pbc {
+    def composeCellArray(dirsFiles, suffixMapper) :pbc {
         def list := [] diverge()
         for each in dirsFiles[0] {
-            list push(cellMaker new(each, true))
+            list push(cellMaker new(each, true, suffixMapper))
         }
         for each in dirsFiles[1] {
-            list push(cellMaker new(each, false))
+            list push(cellMaker new(each, false, suffixMapper))
         }
         list snapshot()
     }
@@ -158,7 +167,7 @@
                 def dirsVow := recentFilesListVow (diskNavRcvr <- listCurrentSubdirectoriesAndFiles())
                 when (dirsVow, currentPathVow) -> done(dirsFilesTuple, currentPath) {
                     locationLabel setText(dirNameFromPath(currentPath))
-                    listPanel setListData(composeCellArray(dirsFilesTuple))
+                    listPanel setListData(composeCellArray(dirsFilesTuple, suffixMapper))
                     windowController setStatus("Refresh done.")
                 } catch err {
                     #connectionWarning("Screen Refresh Failed\n" + err)



1.2       +23 -23    e/src/esrc/com/skyhunter/eDesk/progressWindowMakerAuthor.emaker

Index: progressWindowMakerAuthor.emaker
===================================================================
RCS file: /cvs/e/src/esrc/com/skyhunter/eDesk/progressWindowMakerAuthor.emaker,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- progressWindowMakerAuthor.emaker	2001/09/12 00:01:51	1.1
+++ progressWindowMakerAuthor.emaker	2001/11/10 19:40:36	1.2
@@ -1,25 +1,25 @@
 def progressWindowMakerAuthor(swing__uriGetter, standardWindow) :near {
-	class progressWindowMaker(title) :near {
-		var fileSize := 1000000000
-		def progressWindow
-		def myFrame := standardWindow(title,progressWindow)
-		def myProgressPane := <swing:JProgressBar> new()
-		myProgressPane setStringPainted(true)
-		myFrame getContentPane() add(myProgressPane)
-		myFrame pack()
-		myFrame setSize(150,50)
-		myFrame show()
-		def bind progressWindow {
-			to setProgress(amountCopied) {
-				def percent := (amountCopied *100) _/ fileSize
-				myProgressPane setValue(percent)
-				myProgressPane setString(`$percent%`)
-			}
-			to setFileSize(size) {
-				fileSize := size
-			}
-			to windowClosing() {}
-			to closeWindow() {myFrame dispose()}
-		}
-	}
+    class progressWindowMaker(title) :near {
+        var fileSize := 1000000000
+        def progressWindow
+        def myFrame := standardWindow(title,progressWindow)
+        def myProgressPane := <swing:JProgressBar> new()
+        myProgressPane setStringPainted(true)
+        myFrame getContentPane() add(myProgressPane)
+        myFrame pack()
+        myFrame setSize(150,50)
+        myFrame show()
+        def bind progressWindow {
+            to setProgress(amountCopied) {
+                def percent := (amountCopied *100) _/ fileSize
+                myProgressPane setValue(percent)
+                myProgressPane setString(`$percent%`)
+            }
+            to setFileSize(size) {
+                fileSize := size
+            }
+            to windowClosing() {}
+            to closeWindow() {myFrame dispose()}
+        }
+    }
 }



1.2       +17 -17    e/src/esrc/com/skyhunter/eDesk/serverDescVowAuthor.emaker

Index: serverDescVowAuthor.emaker
===================================================================
RCS file: /cvs/e/src/esrc/com/skyhunter/eDesk/serverDescVowAuthor.emaker,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- serverDescVowAuthor.emaker	2001/10/27 17:34:08	1.1
+++ serverDescVowAuthor.emaker	2001/11/10 19:40:36	1.2
@@ -12,7 +12,7 @@
 //**********
 
 def serverDescVowAuthor(unsafe__uriGetter, awt__uriGetter, swing__uriGetter, frameMaker, traceln) :any {
-    
+
     def JPanel__quasiParser := <import:org.erights.ex.swing.JPanelQParserMaker> new(awt__uriGetter, swing__uriGetter)
     def promiseAllResolved := <import:com.skyhunter.e.net.promiseAllResolved>
     #def uriTools := <import:com.skyhunter.e.net.uriToolsAuthor>(introducer,
@@ -24,14 +24,14 @@
         swing__uriGetter,
         JPanel__quasiParser,
         frameMaker)
-    
+
     #integer string converter
     def toInt(numString) :near {(<unsafe:java.lang.Integer> new(numString)) intValue()}
-    
+
     #****** Configurator Specific Code ***********
-    
+
     def mainFrame := frameMaker new()
-    def [configVow, configSolver] := PromiseMaker() 
+    def [configVow, configSolver] := PromiseMaker()
     def configReady
     def windowTitleField := <swing:JTextField> new("My eDesk Server")
     def rootPathField := <swing:JTextField> new()
@@ -46,16 +46,16 @@
     def okButton := uiSet newButton("OK",configReady)
     def l(text) :near {<swing:JLabel> new(text)}
     def formPane :=
-      JPanel`${l("Browser-Window Title")}          $windowTitleField.X
-		${l("Home Path")}                   $homePathField.X
-		$serverOnlyBox                      >
-		${l("   Write Capability To")}      $capFileField.X 
-		${l(" ")}                           >
-		${l("    Security Configuration")}  >      
-		$isReadOnlyBox                      >      
-		${l("Top Accessible Directory")}    $rootPathField.X 
-		$okButton                           > `
-    
+      JPanel`${l("Browser-Window Title")}        $windowTitleField.X
+             ${l("Home Path")}                   $homePathField.X
+             $serverOnlyBox                      >
+             ${l("   Write Capability To")}      $capFileField.X
+             ${l(" ")}                           >
+             ${l("    Security Configuration")}  >
+             $isReadOnlyBox                      >
+             ${l("Top Accessible Directory")}    $rootPathField.X
+             $okButton                           > `
+
     traceln("config form about to make window")
     #create form window
     def mainPane := mainFrame getContentPane()
@@ -65,7 +65,7 @@
     mainFrame pack()
     #mainFrame setSize(400,200)
     mainFrame show()
-    
+
     def bind configReady() {
         #traceln("made it")
         configSolver resolve (`
@@ -80,6 +80,6 @@
             `)
         mainFrame dispose()
     }
-    
+
     configVow
 }



1.2       +6 -2      e/src/esrc/com/skyhunter/eDesk/icons/folder.gif

Index: folder.gif
===================================================================
RCS file: /cvs/e/src/esrc/com/skyhunter/eDesk/icons/folder.gif,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
Binary files /tmp/cvsrcomX2 and /tmp/cvserUsSV differ



1.1                  e/src/esrc/com/skyhunter/eDesk/icons/folderOld.gif

Index: folderOld.gif
===================================================================
GIF89a
0j1S	HJ*ëX


1.3       +2 -2      e/src/esrc/com/skyhunter/ex/swing/capFrameMakerAuthor.emaker

Index: capFrameMakerAuthor.emaker
===================================================================
RCS file: /cvs/e/src/esrc/com/skyhunter/ex/swing/capFrameMakerAuthor.emaker,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- capFrameMakerAuthor.emaker	2001/09/12 00:01:51	1.2
+++ capFrameMakerAuthor.emaker	2001/11/10 19:40:36	1.3
@@ -46,7 +46,7 @@
 
     class capFrameMaker() :near {
         def innerFrame := <swing:JFrame> new()
-		if (appImage != null) {innerFrame setIconImage(appImage)}
+        if (appImage != null) {innerFrame setIconImage(appImage)}
         innerFrame setTitle(appTitle)
         def contentPane := <swing:JPanel> new()
         def powerPane := <swing:JPanel> new()
@@ -71,6 +71,6 @@
 }
 
 #def powerbox {match [verb,arg] {}}
-#def maker := capFrameMakerAuthor(powerbox, <swing:JFrame>, null, "test") 
+#def maker := capFrameMakerAuthor(powerbox, <swing:JFrame>, null, "test")
 #def win := maker new()
 #win show()



1.2       +6 -6      e/src/esrc/com/skyhunter/ex/swing/dialogVowMakerAuthor.emaker

Index: dialogVowMakerAuthor.emaker
===================================================================
RCS file: /cvs/e/src/esrc/com/skyhunter/ex/swing/dialogVowMakerAuthor.emaker,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- dialogVowMakerAuthor.emaker	2001/09/12 00:01:51	1.1
+++ dialogVowMakerAuthor.emaker	2001/11/10 19:40:36	1.2
@@ -11,11 +11,11 @@
 //**********
 
 //XXX fix this author to require only jframe when capwt is working
-def dialogVowMakerAuthor (awt__uriGetter, swing__uriGetter, dummyJPanel, frameMaker) :near  {   
+def dialogVowMakerAuthor (awt__uriGetter, swing__uriGetter, dummyJPanel, frameMaker) :near  {
     def JPanel__quasiParser := <import:org.erights.ex.swing.JPanelQParserMaker> new(
         awt__uriGetter, swing__uriGetter)
     def uiTools := <import:com.skyhunter.ex.swing.uiToolsAuthor> (awt__uriGetter, swing__uriGetter)
-    
+
     class dialogPromiser (title, label, textFieldDefaultValue, buttonNames) :any {
         var myClickedButton := null
         def [finishedDialogPromise, resolver] := PromiseMaker()
@@ -28,9 +28,9 @@
                 }
                 to windowClosed(event) {
                     if (undisposed) {
-		myWin dispose()
-		undisposed := false
-	     }
+        myWin dispose()
+        undisposed := false
+         }
                 }
                 match _ {}
             }
@@ -68,7 +68,7 @@
             $buttonPane `
             #traceln("made buttons")
             def border := <awt:BorderLayout> new()
-            mainPane setLayout(border)            
+            mainPane setLayout(border)
             mainPane add(dialogPane, "Center")
             myWin pack()
             myWin show()



1.4       +25 -25    e/src/esrc/com/skyhunter/ex/swing/standardWindowMakerAuthor.emaker

Index: standardWindowMakerAuthor.emaker
===================================================================
RCS file: /cvs/e/src/esrc/com/skyhunter/ex/swing/standardWindowMakerAuthor.emaker,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- standardWindowMakerAuthor.emaker	2001/09/12 00:01:51	1.3
+++ standardWindowMakerAuthor.emaker	2001/11/10 19:40:36	1.4
@@ -1,29 +1,29 @@
 def standardWindowMakerAuthor(interp, frameMaker) :near {
-	//close whole app when windowset returns to zero size
-	def windowSet := [] asKeys() diverge()
-	def standardWindowMaker (title, windowClosingHandler) :near {
-		var undisposed := true
-		def mainFrame := frameMaker new(title)
-		windowSet[mainFrame] := mainFrame
-		def windowListener {
-			to windowClosing(event) {
-				windowClosingHandler windowClosing()
-			}
-			to windowClosed(event) {
-				windowSet removeKey(mainFrame)
-				if (undisposed) {
-					mainFrame dispose()
-					undisposed := false
-				}
-				if (windowSet size() == 0) {
-					interp continueAtTop()
-				}
-			}
-			match _ {}
-		}
-		mainFrame addWindowListener(windowListener)
-		mainFrame
-	}
+    //close whole app when windowset returns to zero size
+    def windowSet := [] asKeys() diverge()
+    def standardWindowMaker (title, windowClosingHandler) :near {
+        var undisposed := true
+        def mainFrame := frameMaker new(title)
+        windowSet[mainFrame] := mainFrame
+        def windowListener {
+            to windowClosing(event) {
+                windowClosingHandler windowClosing()
+            }
+            to windowClosed(event) {
+                windowSet removeKey(mainFrame)
+                if (undisposed) {
+                    mainFrame dispose()
+                    undisposed := false
+                }
+                if (windowSet size() == 0) {
+                    interp continueAtTop()
+                }
+            }
+            match _ {}
+        }
+        mainFrame addWindowListener(windowListener)
+        mainFrame
+    }
 }
 
 



1.3       +70 -65    e/src/esrc/com/skyhunter/installer/agreedCapsPetsVowMakerAuthor.emaker

Index: agreedCapsPetsVowMakerAuthor.emaker
===================================================================
RCS file: /cvs/e/src/esrc/com/skyhunter/installer/agreedCapsPetsVowMakerAuthor.emaker,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- agreedCapsPetsVowMakerAuthor.emaker	2001/10/27 17:27:42	1.2
+++ agreedCapsPetsVowMakerAuthor.emaker	2001/11/10 19:40:37	1.3
@@ -13,9 +13,9 @@
     def winImage := <swing:ImageIcon> new(
         <resource:com/skyhunter/eDesk/icons/super.gif>) getImage()
     def lbl(contents) :near { <swing:JLabel> new(contents)}
-    
+
     def mapDomText := <import:com.skyhunter.e.util.mapDomText>
-    
+
     class capsPetsMaker(capsXML,petMap) :near {
         def capsPets {
             to getCapsXML() :String {capsXML}
@@ -39,7 +39,7 @@
         var petIconField := lbl(" ")
         #petListPanel setLayout(<awt:GridLayout> new(3,2))
         def capTabsPane := <swing:JTabbedPane> new()
-        
+
         def buildPetIconSelectionPane(defaultsTable) :near {
             def tempPath := baseDirPath + defaultsTable["Icon"]
             var iconPath := <file: tempPath> getCanonicalPath()
@@ -47,10 +47,10 @@
             def pathLabel := <swing:JLabel> new(iconPath)
             petFieldsMap["Icon"] := pathLabel
             def icon := <swing:ImageIcon> new(
-                <unsafe:java.net.URL> new("file:" + iconPath)) 
+                <unsafe:java.net.URL> new("file:" + iconPath))
             def iconLabel := <swing:JLabel> new(icon)
             def changeIconFunc() {
-                def dialog := <awt:FileDialog> new(<swing:JFrame> new(), 
+                def dialog := <awt:FileDialog> new(<swing:JFrame> new(),
                                                    "Select Icon For This Caplet",
                                                    0)
                 dialog show()
@@ -62,45 +62,45 @@
                         <unsafe:java.net.URL> new("file:" + iconPath))
                     iconLabel setIcon(newIcon)
                 }
-            
+
             }
             def newIconB := uiKit newButton("Change Icons",changeIconFunc)
             traceln("about to build JPanel")
             JPanel`$iconLabel $pathLabel    >
                    V          $newIconB     ${lbl(" ")}.X  `
         }
-        
+
         def protocolsVisitor {
             to visitProtocol(subnodes) {
                 def table := mapDomText(subnodes)
                 traceln("table: " + table)
                 #if (validUrlProtocols maps(table["Name"])) {
-                    def protocolCheck := <swing:JCheckBox> new(table["Name"])
-                    def whyLabel := <swing:JLabel> new(table["Why"])
-                    def protocolPane := JPanel`$protocolCheck $whyLabel.X`
-                    def clickedRunner() {
-                        traceln("into clickedRunner")
-                        if (protocolCheck isEnabled()) {
-                            agreedUrlProtocols[table["Name"]] := null
-                        } else {
-                            agreedUrlProtocols removeKey(table["Name"])
-                        }
-                        traceln("did clickedRunner: " + agreedUrlProtocols)
+                def protocolCheck := <swing:JCheckBox> new(table["Name"])
+                def whyLabel := <swing:JLabel> new(table["Why"])
+                def protocolPane := JPanel`$protocolCheck $whyLabel.X`
+                def clickedRunner() {
+                    traceln("into clickedRunner")
+                    if (protocolCheck isEnabled()) {
+                        agreedUrlProtocols[table["Name"]] := null
+                    } else {
+                        agreedUrlProtocols removeKey(table["Name"])
                     }
-                    uiKit attachAction(protocolCheck, clickedRunner)
-                    urlProtocolsListPanel add(protocolPane)
+                    traceln("did clickedRunner: " + agreedUrlProtocols)
+                }
+                uiKit attachAction(protocolCheck, clickedRunner)
+                urlProtocolsListPanel add(protocolPane)
                 #} else {traceln("invalid protocol: " + table["Name"])}
             }
             to viewText(text) {}
         }
-        
+
         def requestsVisitor {
             to visitUrlProtocols(subnodes) {
                 for each in subnodes {each welcome(protocolsVisitor)}
                 def helpLabel := <swing:JLabel> new(stringDataKit  getUrlProtocolHelp())
                 def urlProtocolsMainPanel :=
                   JPanel`$urlProtocolsListPanel
-				$helpLabel.Y`
+                $helpLabel.Y`
                 urlProtocolsMainPanel setName("Web")
                 capTabsPane add(urlProtocolsMainPanel)
             }
@@ -119,28 +119,28 @@
                     #insertLabelFieldPair("Pet Name:", "Name")
                     petNameLabel := lbl("Pet Name: ")
                     petNameField := <swing:JTextField> new(table["Name"])
-                    petFieldsMap["Name"] := petNameField  
+                    petFieldsMap["Name"] := petNameField
                     petTabNeeded := true
                 }
                 if (table maps("Suffix")) {
                     #insertLabelFieldPair("Default File Extension: ", "Suffix")
                     petSuffixLabel  := lbl("Default File Extension: ")
                     petSuffixField  := <swing:JTextField> new(table["Suffix"])
-                    petFieldsMap["Suffix"] := petSuffixField 
+                    petFieldsMap["Suffix"] := petSuffixField
                     petTabNeeded := true
                 }
                 if (table maps("Icon")) {
                     #insertLabelFieldPair("Icon Path:", "Icon")
                     #def iconLabel :=
                     petIconLabel  := <swing:JLabel> new("Pet Icon")
-                    petIconField  := buildPetIconSelectionPane(table) 
-                    traceln("addedIconpanel to pet list panel") 
+                    petIconField  := buildPetIconSelectionPane(table)
+                    traceln("addedIconpanel to pet list panel")
                     petTabNeeded := true
                 }
                 if (petTabNeeded) {
                     def helpLabel := <swing:JLabel> new(stringDataKit getPetHelp())
-                    def petListPanel := 
-                        JPanel`$petNameLabel    $petNameField.X
+                    def petListPanel :=
+                      JPanel`$petNameLabel    $petNameField.X
                                ${lbl(" ")}      ${lbl(" ")}
                                $petSuffixLabel  $petSuffixField
                                ${lbl(" ")}      ${lbl(" ")}
@@ -163,44 +163,49 @@
             to viewText(blah) {}
         }
         for each in requestsTree {each welcome(topVisitor)}
-        def frame := <swing:JFrame> new()
-        frame setIconImage(winImage) 
-        def windowListener {
-            to windowClosing(event) {
-                capsSolver smash("Grants not made")
+        if (capTabsPane getComponentCount() > 0) {
+            def frame := <swing:JFrame> new()
+            frame setIconImage(winImage)
+            def windowListener {
+                to windowClosing(event) {
+                    capsSolver smash("Grants not made")
+                    frame dispose()
+                }
+                match [verb, args] {}
+            }
+            frame addWindowListener(windowListener)
+            def grantFunc() {
+                traceln("into grantfunc: " )
                 frame dispose()
-            }
-            match [verb, args] {}
-        }
-        frame addWindowListener(windowListener)
-        def grantFunc() {
-            traceln("into grantfunc: " )
-            frame dispose()
-            var xmlOut := "<caps>"
-            if (agreedUrlProtocols size() > 0) {
-                xmlOut += "<urlProtocols>"
-                for each => dummy in agreedUrlProtocols {
-                    xmlOut += `<protocol>$each</protocol>`
-                }
-                xmlOut += "</urlProtocols>"
-            }
-            xmlOut += "</caps>"
-            def petData := [] asKeys() diverge()
-            for key => value in petFieldsMap {
-                petData[key] := value getText()
-            }
-            capsSolver resolve(capsPetsMaker new(xmlOut,petData snapshot() ) )
-        }
-        def grantButton := uiKit newButton("Finish Installation", grantFunc)
-        def spacer := <swing:JLabel> new(" ")
-        def realPane :=
-          JPanel`$capTabsPane.Y
+                var xmlOut := "<caps>"
+                if (agreedUrlProtocols size() > 0) {
+                    xmlOut += "<urlProtocols>"
+                    for each => dummy in agreedUrlProtocols {
+                        xmlOut += `<protocol>$each</protocol>`
+                    }
+                    xmlOut += "</urlProtocols>"
+                }
+                xmlOut += "</caps>"
+                def petData := [] asKeys() diverge()
+                for key => value in petFieldsMap {
+                    petData[key] := value getText()
+                }
+                capsSolver resolve(capsPetsMaker new(xmlOut,petData snapshot() ) )
+            }
+            def grantButton := uiKit newButton("Finish Installation", grantFunc)
+            def spacer := <swing:JLabel> new(" ")
+            def realPane :=
+              JPanel`$capTabsPane.Y
                 $spacer
-		$grantButton `
-        frame getContentPane() add(realPane)
-        frame pack()
-        frame setSize(600,600)
-        frame show()
+        $grantButton `
+            frame getContentPane() add(realPane)
+            frame pack()
+            frame setSize(600,600)
+            frame show()
+        } else {
+            capsSolver resolve(capsPetsMaker new("<caps></caps>", [] asMap()))
+        }
         capsPromise
+
     }
-} 
+}



1.4       +6 -1      e/src/esrc/com/skyhunter/installer/persistentInstallerAuthor.emaker

Index: persistentInstallerAuthor.emaker
===================================================================
RCS file: /cvs/e/src/esrc/com/skyhunter/installer/persistentInstallerAuthor.emaker,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- persistentInstallerAuthor.emaker	2001/10/27 17:27:42	1.3
+++ persistentInstallerAuthor.emaker	2001/11/10 19:40:37	1.4
@@ -56,8 +56,13 @@
                     outFile setText(capsPets getCapsXML() )
                     def appMap := capsPets getPetMap() diverge()
                     traceln("new appMap in persistentInstaller: " + appMap)
-                    appMap["SourcePath"] := capletSourceFile getCanonicalPath()
+                    traceln("sourcepath: " + sourcePath)
+                    #appMap["SourcePath"] := capletSourceFile getCanonicalPath()
+                    appMap["SourcePath"] := sourcePath
+                    
+                    traceln("set source path")
                     appMap["RunPath"] := outFile getCanonicalPath()
+                    traceln("set source and run paths")
                     appsManager addApp(appMap )
                     dialogVowMaker new("Installation Complete",
                                        `<html><center>Installation of <p>$capletNameRoot <p> succeeded</center>`, null, ["OK"])



1.3       +14 -14    e/src/esrc/com/skyhunter/installer/stringDataKit.emaker

Index: stringDataKit.emaker
===================================================================
RCS file: /cvs/e/src/esrc/com/skyhunter/installer/stringDataKit.emaker,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- stringDataKit.emaker	2001/10/27 17:27:42	1.2
+++ stringDataKit.emaker	2001/11/10 19:40:37	1.3
@@ -2,31 +2,31 @@
 //Copyright (C) 2001 Combex. All Rights Reserved.
 
 def stringDataKit {
-	to getUrlProtocolHelp() :String {
-"<html><b><i>Warning! </i></b>The <b>file</b> protocol is very powerful, 
-it can read every file on your disk. It cannot enable a cracker to take control 
+    to getUrlProtocolHelp() :String {
+"<html><b><i>Warning! </i></b>The <b>file</b> protocol is very powerful,
+it can read every file on your disk. It cannot enable a cracker to take control
 of your computer, but it does put all your confidential data at risk if combined with
-any of the other protocols in this tab. 
+any of the other protocols in this tab.
 <p><b>General Rating: </b>Medium-high power <br>
 <b>Legitimate applications: </b> Web browsers, FTP servers, some chat programs
  <br><b>Risks: </b>
-A program granted URL protocols can transmit any data you supply the program to 
-anyone on the network. So be careful about granting both read authority on your 
+A program granted URL protocols can transmit any data you supply the program to
+anyone on the network. So be careful about granting both read authority on your
 confidential files and URL protocols to the same program.<br>
 The program can also receive orders from other people through these protocols.
-<br>These protocols can be used in denial of service attacks on other people by 
+<br>These protocols can be used in denial of service attacks on other people by
 the program.
-<br> URL protocols cannot be directly used to gain control of your computer. However, 
-any attempt to gain control of your system is likely to include a request for these 
+<br> URL protocols cannot be directly used to gain control of your computer. However,
+any attempt to gain control of your system is likely to include a request for these
 protocols so that the attacker can communicate with the suborned system.
 </html>"
-	}
-	to getPetHelp() :String {
+    }
+    to getPetHelp() :String {
 "<html>The Pet Name is your personal name for this program.
-<p> The File Extension is the last part of the names of documents 
+<p> The File Extension is the last part of the names of documents
 which will be opened with this caplet by default
-<p> The Pet Icon is the image that will be placed in the top left 
+<p> The Pet Icon is the image that will be placed in the top left
 corner of all windows opened by this caplet
 </html>"
-	}
+    }
 }



1.2       +2 -2      e/src/esrc/com/skyhunter/installer/testAgreedCapsVow.e

Index: testAgreedCapsVow.e
===================================================================
RCS file: /cvs/e/src/esrc/com/skyhunter/installer/testAgreedCapsVow.e,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- testAgreedCapsVow.e	2001/11/01 06:56:49	1.1
+++ testAgreedCapsVow.e	2001/11/10 19:40:37	1.2
@@ -31,8 +31,8 @@
 
 println(`capPet promise: $capPetvow`)
 when (capPetvow) -> done(capPet) {
-	println("got answer, xml: " + capPet getCapsXML())
-	println("appMap: " + capPet getPetMap())
+    println("got answer, xml: " + capPet getCapsXML())
+    println("appMap: " + capPet getPetMap())
 } catch prob {println("prob: " + prob)}
 
 interp blockAtTop()



1.2       +1 -1      e/src/esrc/org/erights/e/tools/text/abbrev.emaker

Index: abbrev.emaker
===================================================================
RCS file: /cvs/e/src/esrc/org/erights/e/tools/text/abbrev.emaker,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- abbrev.emaker	2001/09/04 10:45:03	1.1
+++ abbrev.emaker	2001/11/10 19:40:37	1.2
@@ -9,7 +9,7 @@
         str
     } else {
         def segLen := budget _/ 2 - 1
-		def restLen := budget - segLen - 3
+        def restLen := budget - segLen - 3
         str(0,segLen) + "..." + str(len - restLen, len)
     }
 }



1.45      +43 -43    e/src/esrc/scripts/eBrowser.e

Index: eBrowser.e
===================================================================
RCS file: /cvs/e/src/esrc/scripts/eBrowser.e,v
retrieving revision 1.44
retrieving revision 1.45
diff -u -r1.44 -r1.45
--- eBrowser.e	2001/10/27 17:27:42	1.44
+++ eBrowser.e	2001/11/10 19:40:37	1.45
@@ -44,7 +44,7 @@
     JFrameMaker)
 def setupDrop := <import:com.skyhunter.e.awt.dnd.setupDropFuncAuthor> (
     <awt:dnd.DropTarget>, println)
-    
+
 def StringReaderMaker := <unsafe:java.io.StringReader>
 def textSelectorMaker := <import:org.erights.ex.swing.textSelectorMaker>
 def abbrev := <import:org.erights.e.tools.text.abbrev>
@@ -92,17 +92,17 @@
 def popAboutBox() {
     def props := interp getProps()
     def text := `<html>For Help with eBrowser, see<br>
-	http://www.skyhunter.com/marcs/eBrowserIndex.html<p><p>
+    http://www.skyhunter.com/marcs/eBrowserIndex.html<p><p>
 
-	Copyright 1999 Marc Stiegler. All rights reserved.<br>
-	This software covered by the Mozilla license. For details see<p><p>
+    Copyright 1999 Marc Stiegler. All rights reserved.<br>
+    This software covered by the Mozilla license. For details see<p><p>
 
-	http://www.skyhunter.com/marcs/eBrowser-license.html<p><p>
+    http://www.skyhunter.com/marcs/eBrowser-license.html<p><p>
 
-	OS version: ${props["os.name"]} ${props["os.version"]} on ${props["os.arch"]}<br>
-	Java version: ${props["java.version"]} at ${props["java.home"] replaceAll("\\", "/")}<br>
-	E version: ${props["e.version"]} at ${props["e.home"]}<br>
-	for ${props["user.name"]} in ${props["user.region"]}</html>`
+    OS version: ${props["os.name"]} ${props["os.version"]} on ${props["os.arch"]}<br>
+    Java version: ${props["java.version"]} at ${props["java.home"] replaceAll("\\", "/")}<br>
+    E version: ${props["e.version"]} at ${props["e.home"]}<br>
+    for ${props["user.name"]} in ${props["user.region"]}</html>`
     dialogVowMaker new("About eBrowser", text, null, ["OK"])
 }
 
@@ -350,11 +350,11 @@
             resultPane setText("Execution ended:\n# value: " + result)
             statusPane setText("Execution ended")
             traceln("shown")
-            
+
         } catch problem {
             problemReporter(problem)
         }
-        
+
     }
     interpret <- run()
 }
@@ -487,7 +487,7 @@
             <resource: `com/skyhunter/e/icons/$name`>
         }
     }
-    
+
     def eBrowser
     textModel addFuncsChangedAlertRecipient(eBrowser)
     var closingInProcess := false
@@ -532,7 +532,7 @@
     def runButton :=  newToolButton(
         <icons:run.gif>,
         "Run","executeProgram",eBrowser)
-    
+
     # build text pane
     def textPane := <swing:JTextArea> new()
     textPane setMargin(<awt:Insets> new(0,5,0,10))
@@ -556,7 +556,7 @@
             textModel replaceStubFile(file)
             openFiles [path] := eBrowser
             setTitle()
-            textPane setText(textModel reload()) 
+            textPane setText(textModel reload())
         } else {
             def browser := eBrowserMaker new(textModelMaker new(file))
             openFiles[path] := browser
@@ -567,9 +567,9 @@
             openFile(files[i])
         }
     }
-    setupDrop(textPane, [<awt:datatransfer.DataFlavor> javaFileListFlavor() 
+    setupDrop(textPane, [<awt:datatransfer.DataFlavor> javaFileListFlavor()
         => reactToFilesDrop])
-    
+
     # build variable list pane
     def varListPopup := <swing:JPopupMenu> new("Var Ops")
     addMenuItem(varListPopup,"Insert","insertVar", eBrowser)
@@ -607,7 +607,7 @@
     }
     varListPane addMouseListener(varListPaneListener)
     scrollingVarPane setMinimumSize(<awt:Dimension> new(50, 100))
-    
+
     # build function list pane
     def funcListPane := <swing:JList> new(<unsafe:java.util.Vector> new())
     funcListPane setFont(<awt:Font> new("Monospaced",<awt:Font> PLAIN(),12))
@@ -646,7 +646,7 @@
     #funcListPane setPreferredSize(<awt:Dimension> new(200, 100)) # why no effect?
     #scrollingFuncPane setMinimumSize(<awt:Dimension> new(100, 100))
     #scrollingFuncPane setPreferredSize(<awt:Dimension> new(200, 100)) # why no effect?
-    
+
     # build output viewpane
     def outputPane := <swing:JTextArea> new()
     outputPane setMinimumSize(<awt:Dimension> new(20, 20))
@@ -655,7 +655,7 @@
         <swing:ScrollPaneConstants> VERTICAL_SCROLLBAR_AS_NEEDED(),
         <swing:ScrollPaneConstants> HORIZONTAL_SCROLLBAR_AS_NEEDED())
     scrollingOutputPane getViewport() add(outputPane)
-    
+
     # build splitter panes
     def varLineSplitter := <swing:JSplitPane> new()
     varLineSplitter setLeftComponent(scrollingTextPane)
@@ -666,23 +666,23 @@
     def outLineSplitter := <swing:JSplitPane> new()
     outLineSplitter setLeftComponent(scrollingFuncPane)
     outLineSplitter setRightComponent(outputSplitter)
-    
+
     # build status pane
     def statusPane := E call(<swing:JLabel>, "new(String)",["   "])
     statusPane setFont(<awt:Font> new("Monospaced",<awt:Font> PLAIN(),11))
-    
+
     def s1 := uiTools labelIcon(<icons:separator.gif>)
     def s2 := uiTools labelIcon(<icons:separator.gif>)
     def s3 := uiTools labelIcon(<icons:separator.gif>)
-    
+
     # real pane
     def buttonPane :=
       JPanel`$saveButton $reformatButton $s1 $pasteUpdocButton $elmerButton $s2 $runHiLiteButton $runButton $s3 $gotoButton $findButton  $searchField.X`
     def realPane :=
       JPanel`$buttonPane
-	$outLineSplitter.X.Y
-	$statusPane   `
-    
+    $outLineSplitter.X.Y
+    $statusPane   `
+
     # def text replacer function
     def replaceSelectionHilite(replacement) {
         def location := textPane getSelectionStart()
@@ -691,7 +691,7 @@
         textPane moveCaretPosition(location + replacement size())
         textPane requestFocus()
     }
-    
+
     # menubar
     def newFileFunc() {
         eBrowserMaker new(textModelMaker new(null))
@@ -729,7 +729,7 @@
             }
         }
     }
-    
+
     def makeFontLarger() {
         def oldFont := textPane getFont()
         def newFont := oldFont deriveFont(0.0 + oldFont getSize() + 2.0)
@@ -737,7 +737,7 @@
         funcListPane setFont(newFont)
         varListPane setFont(newFont)
     }
-    
+
     def makeFontSmaller() {
         def oldFont := textPane getFont()
         def newFont := oldFont deriveFont(0.0 + oldFont getSize() - 2.0)
@@ -745,7 +745,7 @@
         funcListPane setFont(newFont)
         varListPane setFont(newFont)
     }
-    
+
     # Option menu
     var capScriptsMaySubstitute := false
     #def substitutionAllowedMenuItem :=
@@ -755,8 +755,8 @@
     #capScriptsMaySubstitute := substitutionAllowedMenuItem getState()
     #}
     #uiTools attachAction(substitutionAllowedMenuItem,toggleSubstitution)
-    
-    
+
+
     # capScript menu
     # scriptEvaluator must be a single-argument receiver, receiving a
     # source text
@@ -800,10 +800,10 @@
     #scriptFolder,
     #def confiner(source) :any {confinedRunner(source, outputPane)})
     #E call(menubar, "add(JMenu)", [capScriptMenu])
-    
+
     #def indentGroup := <swing:ButtonGroup> new()
     #var defaultIndentItem := null
-    
+
     def menuReactor {
         to doNew(){newFileFunc()}
         to doOpen() {openFunc()}
@@ -816,7 +816,7 @@
         to doAbout() {eBrowser about()}
         match [verb,args] {traceln("menu hit for " + verb)}
     }
-    
+
     #make the menus
     def mm := <import:com.skyhunter.ex.swing.menuMakerAuthor> (
         swing__uriGetter,
@@ -843,7 +843,7 @@
     ])
     #defaultIndentItem setSelected(true)
     mainFrame setJMenuBar(menuBar)
-    
+
     # configure and show window
     mainPane add(realPane)
     setTitle()
@@ -857,7 +857,7 @@
     # def width := varLineSplitter getBounds() width()
     E call(varLineSplitter, "setDividerLocation(int)",[600])
     mainFrame show()
-    
+
     def windowActiveListener {
         to windowActivated(e) {
             if (textModel storedVersionIsNewer()) {
@@ -873,24 +873,24 @@
                 if (shouldUpdate == <swing:JOptionPane> YES_OPTION()) {
                     textPane setText(textModel reload())
                 } else {textModel resetSaveTimeNoReload()}
-                
+
             }
         }
         match _ {}
     }
     mainFrame addWindowListener(windowActiveListener)
-    
+
     startOutlineSyncer(farBrowseServerMaker <- new(), textModel, textPane)
-    
+
     def path := textModel getFilePath()
     def textSelector := textSelectorMaker new(textPane, `file:$path`)
     def problemReporter := problemReporterMaker new(textSelector, outputPane, statusPane)
-    
+
     def getTwine() :Twine {
         def reader := StringReaderMaker new(textPane getText())
         reader getTwine(`file:$path`)
     }
-    
+
     var undisposed := true
     def closeCleanly() {
         textModel close()
@@ -899,7 +899,7 @@
             undisposed := false
         }
     }
-    
+
     def bind eBrowser {
         to save() {
             if (textModel saveFileIsSet()) {
@@ -926,7 +926,7 @@
                     startFoundIndex + searchField getText() size())
                 eBrowser setStatus("Found")
                 textPane requestFocus()
-                
+
             } else {eBrowser setStatus("Not Found")}
         }
         to goto() {



1.5       +1 -1      e/src/jsrc/net/ertp/Assay.java

Index: Assay.java
===================================================================
RCS file: /cvs/e/src/jsrc/net/ertp/Assay.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- Assay.java	2001/09/06 09:55:39	1.4
+++ Assay.java	2001/11/10 19:40:37	1.5
@@ -105,7 +105,7 @@
      * contain adequate erights to fund the transfer.
      */
     void transfer(Purse src, Purse dest)
-         throws UnsealingException, InsufficientERightsException;
+      throws UnsealingException, InsufficientERightsException;
 
     /**
      * Return -1.0, 0.0, 1.0, or NaN as the erights represented by this Assay



1.5       +7 -2      e/src/jsrc/net/ertp/InsufficientERightsException.java

Index: InsufficientERightsException.java
===================================================================
RCS file: /cvs/e/src/jsrc/net/ertp/InsufficientERightsException.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- InsufficientERightsException.java	2001/09/06 09:55:39	1.4
+++ InsufficientERightsException.java	2001/11/10 19:40:37	1.5
@@ -29,7 +29,12 @@
  * @author <a href="mailto:markm@erights.org">Mark S. Miller</a>
  */
 public class InsufficientERightsException extends Exception {
-    public InsufficientERightsException() {}
-    public InsufficientERightsException(String msg) { super(msg); }
+
+    public InsufficientERightsException() {
+    }
+
+    public InsufficientERightsException(String msg) {
+        super(msg);
+    }
 }
 



1.6       +1 -1      e/src/jsrc/net/ertp/Issuer.java

Index: Issuer.java
===================================================================
RCS file: /cvs/e/src/jsrc/net/ertp/Issuer.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- Issuer.java	2001/09/06 09:55:39	1.5
+++ Issuer.java	2001/11/10 19:40:37	1.6
@@ -63,7 +63,7 @@
      * @return If so, it returns the candidate.
      * @exception UnsealingException If not, it throws
      UnsealingException.
-    */
+     */
     Object vouch(Object candidate) throws UnsealingException;
 
     /**



1.3       +11 -2     e/src/jsrc/net/vattp/data/AuthSecrets.java

Index: AuthSecrets.java
===================================================================
RCS file: /cvs/e/src/jsrc/net/vattp/data/AuthSecrets.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- AuthSecrets.java	2001/10/02 01:29:18	1.2
+++ AuthSecrets.java	2001/11/10 19:40:37	1.3
@@ -27,15 +27,24 @@
  * @author Bill Frantz
  */
 
-/*package*/ class AuthSecrets {
+/*package*/
+class AuthSecrets {
+
     String myEProtocolVersion;
+
     String myProtocolSuite;
+
     byte[] myMacKey;
+
     byte[] myDHSecret;
+
     byte[] myOutgoingSequence;
+
     byte[] myIncomingSequence;
+
+    AuthSecrets() {
+    }
 
-    AuthSecrets() {}
     public String toString() {
         return "EProtocol=" + myEProtocolVersion + " AuthProtocol=" + myProtocolSuite;
     }



1.3       +3 -1      e/src/jsrc/net/vattp/data/ConnectionAttemptFailed.java

Index: ConnectionAttemptFailed.java
===================================================================
RCS file: /cvs/e/src/jsrc/net/vattp/data/ConnectionAttemptFailed.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- ConnectionAttemptFailed.java	2001/09/06 09:55:39	1.2
+++ ConnectionAttemptFailed.java	2001/11/10 19:40:37	1.3
@@ -27,7 +27,9 @@
  *
  * @author Bill Frantz
  */
-/*package*/ class ConnectionAttemptFailed extends IOException {
+/*package*/
+class ConnectionAttemptFailed extends IOException {
+
     /*package*/ ConnectionAttemptFailed(String s) {
         super(s);
     }



1.2       +3 -2      e/src/jsrc/net/vattp/data/ConnectionShutDownException.java

Index: ConnectionShutDownException.java
===================================================================
RCS file: /cvs/e/src/jsrc/net/vattp/data/ConnectionShutDownException.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- ConnectionShutDownException.java	2000/12/21 22:15:18	1.1
+++ ConnectionShutDownException.java	2001/11/10 19:40:37	1.2
@@ -18,11 +18,12 @@
 
 Contributor(s): ______________________________________.
 */
+
 import java.io.IOException;
 
 /**
-   An Exception to report that the connection was shut down normally.
-   @author Bill Frantz
+ An Exception to report that the connection was shut down normally.
+ @author Bill Frantz
  */
 public class ConnectionShutDownException extends IOException {
 



1.6       +149 -132  e/src/jsrc/net/vattp/data/DES.java

Index: DES.java
===================================================================
RCS file: /cvs/e/src/jsrc/net/vattp/data/DES.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- DES.java	2001/09/06 09:55:39	1.5
+++ DES.java	2001/11/10 19:40:37	1.6
@@ -1,7 +1,11 @@
 package net.vattp.data;
-// $Id: DES.java,v 1.5 2001/09/06 09:55:39 markm Exp $
+
+// $Id: DES.java,v 1.6 2001/11/10 19:40:37 markm Exp $
 //
 // $Log: DES.java,v $
+// Revision 1.6  2001/11/10 19:40:37  markm
+// tabs, reformatting, little things
+//
 // Revision 1.5  2001/09/06 09:55:39  markm
 // just formatting and import cleanups
 //
@@ -132,7 +136,7 @@
  * <a href="http://www.systemics.com/docs/cryptix/">Cryptix Development Team</a>.
  * <br>All rights reserved.
  *
- * <p><b>$Revision: 1.5 $</b>
+ * <p><b>$Revision: 1.6 $</b>
  * @author  Systemics Ltd
  * @author  Geoffrey Keating (this Java implementation)
  * @author  Eric Young
@@ -148,6 +152,7 @@
 //...........................................................................
 
     static private final boolean DEBUG = true;
+
     static private final int debuglevel = DEBUG ? 1 : 0;
 
 
@@ -159,17 +164,20 @@
 //...........................................................................
 
     static private final int
-        ROUNDS = 16,                        // number of encryption/decryption rounds
-        BLOCK_SIZE = 8,                     // DES block size in bytes
-        KEY_LENGTH = 8,                     // DES key length in bytes
-        INTERNAL_KEY_LENGTH = ROUNDS * 2;   // number of elements in key schedule
+      ROUNDS = 16,                        // number of encryption/decryption rounds
+    BLOCK_SIZE = 8,                     // DES block size in bytes
+    KEY_LENGTH = 8,                     // DES key length in bytes
+    INTERNAL_KEY_LENGTH = ROUNDS * 2;   // number of elements in key schedule
 
     /**
      * State for encrypt/decrypt/uninitialized.
      */
     private int encryptDecryptState = UNINITIALIZED;
+
     static private final int UNINITIALIZED = 0;
+
     static private final int ENCRYPT = 1;
+
     static private final int DECRYPT = 2;
 
     /**
@@ -199,7 +207,7 @@
         // represent the bit number that each permutated bit is derived from
         // according to FIPS-46
         String cd =
-            "D]PKESYM`UBJ\\@RXA`I[T`HC`LZQ"+"\\PB]TL`[C`JQ@Y`HSXDUIZRAM`EK";
+          "D]PKESYM`UBJ\\@RXA`I[T`HC`LZQ" + "\\PB]TL`[C`JQ@Y`HSXDUIZRAM`EK";
         int j, s, bit;
         int count = 0;
         int offset = 0;
@@ -224,24 +232,26 @@
         // that would be terribly inefficient (code size + time).
         // Instead we use a compressed representation --GK
         String spt =
-            "g3H821:80:H03BA0@N1290BAA88::3112aIH8:8282@0@AH0:1W3A8P810@22;22"+
-            "A18^@9H9@129:<8@822`?:@0@8PH2H81A19:G1@03403A0B1;:0@1g192:@919AA"+
-            "0A109:W21492H@0051919811:215011139883942N8::3112A2:31981jM118::A"+
-            "101@I88:1aN0<@030128:X;811`920:;H0310D1033@W980:8A4@804A3803o1A2"+
-            "021B2:@1AH023GA:8:@81@@12092B:098042P@:0:A0HA9>1;289:@1804:40Ph="+
-            "1:H0I0HP0408024bC9P8@I808A;@0@0PnH0::8:19J@818:@iF0398:8A9H0<13@"+
-            "001@11<8;@82B01P0a2989B:0AY0912889bD0A1@B1A0A0AB033O91182440A9P8"+
-            "@I80n@1I03@1J828212A`A8:12B1@19A9@9@8^B:0@H00<82AB030bB840821Q:8"+
-            "310A302102::A1::20A1;8"; // OK, try to type _that_!
-            // [526 chars, 3156 bits]
+          "g3H821:80:H03BA0@N1290BAA88::3112aIH8:8282@0@AH0:1W3A8P810@22;22" +
+          "A18^@9H9@129:<8@822`?:@0@8PH2H81A19:G1@03403A0B1;:0@1g192:@919AA" +
+          "0A109:W21492H@0051919811:215011139883942N8::3112A2:31981jM118::A" +
+          "101@I88:1aN0<@030128:X;811`920:;H0310D1033@W980:8A4@804A3803o1A2" +
+          "021B2:@1AH023GA:8:@81@@12092B:098042P@:0:A0HA9>1;289:@1804:40Ph=" +
+          "1:H0I0HP0408024bC9P8@I808A;@0@0PnH0::8:19J@818:@iF0398:8A9H0<13@" +
+          "001@11<8;@82B01P0a2989B:0AY0912889bD0A1@B1A0A0AB033O91182440A9P8" +
+          "@I80n@1I03@1J828212A`A8:12B1@19A9@9@8^B:0@H00<82AB030bB840821Q:8" +
+          "310A302102::A1::20A1;8"; // OK, try to type _that_!
+        // [526 chars, 3156 bits]
         // The theory is that each bit position in each int of SP_TRANS is
         // set in exactly 32 entries. We keep track of set bits.
         offset = 0;
         int k, c, param;
-        for (int i = 0; i < 32; i++) { // each bit position
+        for (int i = 0; i < 32; i++) {
+            // each bit position
             k = -1; // pretend the -1th bit was set
             bit = 1 << i;
-            for (j = 0; j < 32; j++) { // each set bit
+            for (j = 0; j < 32; j++) {
+                // each set bit
                 // Each character consists of two three-bit values:
                 c = spt.charAt(offset >> 1) - '0' >> (offset & 1) * 3 & 7;
                 offset++;
@@ -304,7 +314,9 @@
      *
      * @return the length in bytes of an input block for this cipher.
      */
-    public int blockSize() { return BLOCK_SIZE; }
+    public int blockSize() {
+        return BLOCK_SIZE;
+    }
 
     /**
      * <b>SPI</b>: Initializes this cipher for encryption, using the
@@ -316,8 +328,8 @@
      *                <li> The length of the user key array is not KEY_LENGTH.
      *              </ul>
      */
-    public void initEncrypt (byte[] key)
-    throws InvalidKeyException {
+    public void initEncrypt(byte[] key)
+      throws InvalidKeyException {
         makeKey(key);
         encryptDecryptState = ENCRYPT;
     }
@@ -332,8 +344,8 @@
      *                <li> The length of the user key array is not KEY_LENGTH.
      *              </ul>
      */
-    public void initDecrypt (byte[] key)
-    throws InvalidKeyException {
+    public void initDecrypt(byte[] key)
+      throws InvalidKeyException {
         makeKey(key);
         encryptDecryptState = DECRYPT;
     }
@@ -341,10 +353,10 @@
     public byte[] crypt(byte[] data) {
         if (data.length != BLOCK_SIZE) {
             throw new IllegalArgumentException("data.length != BLOCK_SIZE");
-	}
-	byte [] ans = new byte[BLOCK_SIZE];
-	update(data, 0, BLOCK_SIZE, ans, 0);
-	return ans;
+        }
+        byte[] ans = new byte[BLOCK_SIZE];
+        update(data, 0, BLOCK_SIZE, ans, 0);
+        return ans;
     }
 
     /**
@@ -369,8 +381,8 @@
         boolean doEncrypt = (encryptDecryptState == ENCRYPT);
 
         // Avoid overlapping input and output regions.
-        if (in == out && (outOffset >= inOffset && outOffset < (long)inOffset+inLen ||
-                          inOffset >= outOffset && inOffset < (long)outOffset+inLen)) {
+        if (in == out && (outOffset >= inOffset && outOffset < (long)inOffset + inLen ||
+          inOffset >= outOffset && inOffset < (long)outOffset + inLen)) {
             byte[] newin = new byte[inLen];
             System.arraycopy(in, inOffset, newin, 0, inLen);
             in = newin;
@@ -398,8 +410,8 @@
      *                <li> The length of the user key array is not KEY_LENGTH.
      *              </ul>
      */
-    private void makeKey (byte[] userkey)
-    throws InvalidKeyException {
+    private void makeKey(byte[] userkey)
+      throws InvalidKeyException {
 
         if (userkey == null)
             throw new InvalidKeyException(getAlgorithm() + ": Null user key");
@@ -408,14 +420,14 @@
             throw new InvalidKeyException(getAlgorithm() + ": Invalid user key length");
 
         int i = 0;
-        int c = (userkey[i++] & 0xFF)       |
-                (userkey[i++] & 0xFF) <<  8 |
-                (userkey[i++] & 0xFF) << 16 |
-                (userkey[i++] & 0xFF) << 24;
-        int d = (userkey[i++] & 0xFF)       |
-                (userkey[i++] & 0xFF) <<  8 |
-                (userkey[i++] & 0xFF) << 16 |
-                (userkey[i++] & 0xFF) << 24;
+        int c = (userkey[i++] & 0xFF) |
+          (userkey[i++] & 0xFF) << 8 |
+          (userkey[i++] & 0xFF) << 16 |
+          (userkey[i++] & 0xFF) << 24;
+        int d = (userkey[i++] & 0xFF) |
+          (userkey[i++] & 0xFF) << 8 |
+          (userkey[i++] & 0xFF) << 16 |
+          (userkey[i++] & 0xFF) << 24;
 
         int t = ((d >>> 4) ^ c) & 0x0F0F0F0F;
         c ^= t;
@@ -434,10 +446,10 @@
         c ^= t;
         d ^= t << 1;
 
-        d = (d & 0x000000FF) <<  16 |
-            (d & 0x0000FF00)        |
-            (d & 0x00FF0000) >>> 16 |
-            (c & 0xF0000000) >>>  4;
+        d = (d & 0x000000FF) << 16 |
+          (d & 0x0000FF00) |
+          (d & 0x00FF0000) >>> 16 |
+          (c & 0xF0000000) >>> 4;
         c &= 0x0FFFFFFF;
 
         int s;
@@ -451,19 +463,19 @@
                 c = (c >>> 1 | c << 27) & 0x0FFFFFFF;
                 d = (d >>> 1 | d << 27) & 0x0FFFFFFF;
             }
-            s = SKB[           c         & 0x3F                        ] |
-                SKB[0x040 | (((c >>>  6) & 0x03) | ((c >>>  7) & 0x3C))] |
-                SKB[0x080 | (((c >>> 13) & 0x0F) | ((c >>> 14) & 0x30))] |
-                SKB[0x0C0 | (((c >>> 20) & 0x01) | ((c >>> 21) & 0x06)
-                                                 | ((c >>> 22) & 0x38))];
-            t = SKB[0x100 | ( d         & 0x3F                      )] |
-                SKB[0x140 | (((d >>>  7) & 0x03) | ((d >>>  8) & 0x3c))] |
-                SKB[0x180 | ((d >>> 15) & 0x3F                      )] |
-                SKB[0x1C0 | (((d >>> 21) & 0x0F) | ((d >>> 22) & 0x30))];
-
-            sKey[j++] = t <<  16 | (s & 0x0000FFFF);
-            s         = s >>> 16 | (t & 0xFFFF0000);
-            sKey[j++] = s <<   4 |  s >>> 28;
+            s = SKB[c & 0x3F] |
+              SKB[0x040 | (((c >>> 6) & 0x03) | ((c >>> 7) & 0x3C))] |
+              SKB[0x080 | (((c >>> 13) & 0x0F) | ((c >>> 14) & 0x30))] |
+              SKB[0x0C0 | (((c >>> 20) & 0x01) | ((c >>> 21) & 0x06)
+              | ((c >>> 22) & 0x38))];
+            t = SKB[0x100 | (d & 0x3F)] |
+              SKB[0x140 | (((d >>> 7) & 0x03) | ((d >>> 8) & 0x3c))] |
+              SKB[0x180 | ((d >>> 15) & 0x3F)] |
+              SKB[0x1C0 | (((d >>> 21) & 0x0F) | ((d >>> 22) & 0x30))];
+
+            sKey[j++] = t << 16 | (s & 0x0000FFFF);
+            s = s >>> 16 | (t & 0xFFFF0000);
+            sKey[j++] = s << 4 | s >>> 28;
         }
     }
 
@@ -477,16 +489,16 @@
      * @param  encrypt  true to encrypt, false to decrypt
      */
     private void
-    des (byte[] in, int inOffset, byte[] out, int outOffset, boolean encrypt) {
+      des(byte[] in, int inOffset, byte[] out, int outOffset, boolean encrypt) {
         int[] lr = {
-            (in[inOffset++] & 0xFF)       |
-            (in[inOffset++] & 0xFF) <<  8 |
-            (in[inOffset++] & 0xFF) << 16 |
-            (in[inOffset++] & 0xFF) << 24,
-            (in[inOffset++] & 0xFF)       |
-            (in[inOffset++] & 0xFF) <<  8 |
-            (in[inOffset++] & 0xFF) << 16 |
-            (in[inOffset  ] & 0xFF) << 24};
+            (in[inOffset++] & 0xFF) |
+          (in[inOffset++] & 0xFF) << 8 |
+          (in[inOffset++] & 0xFF) << 16 |
+          (in[inOffset++] & 0xFF) << 24,
+            (in[inOffset++] & 0xFF) |
+          (in[inOffset++] & 0xFF) << 8 |
+          (in[inOffset++] & 0xFF) << 16 |
+          (in[inOffset] & 0xFF) << 24};
 
         initialPermutation(lr);
 
@@ -501,18 +513,18 @@
         int R = lr[0];
         int L = lr[1];
 
-        out[outOffset++] = (byte) L;
-        out[outOffset++] = (byte)(L >>  8);
+        out[outOffset++] = (byte)L;
+        out[outOffset++] = (byte)(L >> 8);
         out[outOffset++] = (byte)(L >> 16);
         out[outOffset++] = (byte)(L >> 24);
-        out[outOffset++] = (byte) R;
-        out[outOffset++] = (byte)(R >>  8);
+        out[outOffset++] = (byte)R;
+        out[outOffset++] = (byte)(R >> 8);
         out[outOffset++] = (byte)(R >> 16);
-        out[outOffset  ] = (byte)(R >> 24);
+        out[outOffset] = (byte)(R >> 24);
     }
 
     /** Implements DES encryption without IP and FP. */
-    private void encrypt_base (int[] io) {
+    private void encrypt_base(int[] io) {
         int L = io[0];
         int R = io[1];
 
@@ -527,33 +539,33 @@
             u = R ^ sKey[i++];
             t = R ^ sKey[i++];
             t = t >>> 4 | t << 28;
-            L ^= (SP_TRANS[0x040 | (t         & 0x3F)] |
-                  SP_TRANS[0x0C0 | ((t >>>  8) & 0x3F)] |
-                  SP_TRANS[0x140 | ((t >>> 16) & 0x3F)] |
-                  SP_TRANS[0x1C0 | ((t >>> 24) & 0x3F)] |
-                  SP_TRANS[          u         & 0x3F ] |
-                  SP_TRANS[0x080 | ((u >>>  8) & 0x3F)] |
-                  SP_TRANS[0x100 | ((u >>> 16) & 0x3F)] |
-                  SP_TRANS[0x180 | ((u >>> 24) & 0x3F)]);
+            L ^= (SP_TRANS[0x040 | (t & 0x3F)] |
+              SP_TRANS[0x0C0 | ((t >>> 8) & 0x3F)] |
+              SP_TRANS[0x140 | ((t >>> 16) & 0x3F)] |
+              SP_TRANS[0x1C0 | ((t >>> 24) & 0x3F)] |
+              SP_TRANS[u & 0x3F] |
+              SP_TRANS[0x080 | ((u >>> 8) & 0x3F)] |
+              SP_TRANS[0x100 | ((u >>> 16) & 0x3F)] |
+              SP_TRANS[0x180 | ((u >>> 24) & 0x3F)]);
 
             u = L ^ sKey[i++];
             t = L ^ sKey[i++];
             t = t >>> 4 | t << 28;
-            R ^= (SP_TRANS[0x040 | (t         & 0x3F)] |
-                  SP_TRANS[0x0C0 | ((t >>>  8) & 0x3F)] |
-                  SP_TRANS[0x140 | ((t >>> 16) & 0x3F)] |
-                  SP_TRANS[0x1C0 | ((t >>> 24) & 0x3F)] |
-                  SP_TRANS[          u         & 0x3F ] |
-                  SP_TRANS[0x080 | ((u >>>  8) & 0x3F)] |
-                  SP_TRANS[0x100 | ((u >>> 16) & 0x3F)] |
-                  SP_TRANS[0x180 | ((u >>> 24) & 0x3F)]);
+            R ^= (SP_TRANS[0x040 | (t & 0x3F)] |
+              SP_TRANS[0x0C0 | ((t >>> 8) & 0x3F)] |
+              SP_TRANS[0x140 | ((t >>> 16) & 0x3F)] |
+              SP_TRANS[0x1C0 | ((t >>> 24) & 0x3F)] |
+              SP_TRANS[u & 0x3F] |
+              SP_TRANS[0x080 | ((u >>> 8) & 0x3F)] |
+              SP_TRANS[0x100 | ((u >>> 16) & 0x3F)] |
+              SP_TRANS[0x180 | ((u >>> 24) & 0x3F)]);
         }
         io[0] = R >>> 1 | R << 31;
         io[1] = L >>> 1 | L << 31;
     }
 
     /** Implements DES decryption without IP and FP. */
-    private void decrypt_base (int[] io) {
+    private void decrypt_base(int[] io) {
         int L = io[0];
         int R = io[1];
 
@@ -568,32 +580,32 @@
             t = R ^ sKey[i--];
             u = R ^ sKey[i--];
             t = t >>> 4 | t << 28;
-            L ^= (SP_TRANS[0x040 | (t         & 0x3F)] |
-                  SP_TRANS[0x0C0 | ((t >>>  8) & 0x3F)] |
-                  SP_TRANS[0x140 | ((t >>> 16) & 0x3F)] |
-                  SP_TRANS[0x1C0 | ((t >>> 24) & 0x3F)] |
-                  SP_TRANS[          u         & 0x3F ] |
-                  SP_TRANS[0x080 | ((u >>>  8) & 0x3F)] |
-                  SP_TRANS[0x100 | ((u >>> 16) & 0x3F)] |
-                  SP_TRANS[0x180 | ((u >>> 24) & 0x3F)]);
+            L ^= (SP_TRANS[0x040 | (t & 0x3F)] |
+              SP_TRANS[0x0C0 | ((t >>> 8) & 0x3F)] |
+              SP_TRANS[0x140 | ((t >>> 16) & 0x3F)] |
+              SP_TRANS[0x1C0 | ((t >>> 24) & 0x3F)] |
+              SP_TRANS[u & 0x3F] |
+              SP_TRANS[0x080 | ((u >>> 8) & 0x3F)] |
+              SP_TRANS[0x100 | ((u >>> 16) & 0x3F)] |
+              SP_TRANS[0x180 | ((u >>> 24) & 0x3F)]);
 
             t = L ^ sKey[i--];
             u = L ^ sKey[i--];
             t = t >>> 4 | t << 28;
-            R ^= (SP_TRANS[0x040 | (t         & 0x3F)] |
-                  SP_TRANS[0x0C0 | ((t >>>  8) & 0x3F)] |
-                  SP_TRANS[0x140 | ((t >>> 16) & 0x3F)] |
-                  SP_TRANS[0x1C0 | ((t >>> 24) & 0x3F)] |
-                  SP_TRANS[          u         & 0x3F ] |
-                  SP_TRANS[0x080 | ((u >>>  8) & 0x3F)] |
-                  SP_TRANS[0x100 | ((u >>> 16) & 0x3F)] |
-                  SP_TRANS[0x180 | ((u >>> 24) & 0x3F)]);
+            R ^= (SP_TRANS[0x040 | (t & 0x3F)] |
+              SP_TRANS[0x0C0 | ((t >>> 8) & 0x3F)] |
+              SP_TRANS[0x140 | ((t >>> 16) & 0x3F)] |
+              SP_TRANS[0x1C0 | ((t >>> 24) & 0x3F)] |
+              SP_TRANS[u & 0x3F] |
+              SP_TRANS[0x080 | ((u >>> 8) & 0x3F)] |
+              SP_TRANS[0x100 | ((u >>> 16) & 0x3F)] |
+              SP_TRANS[0x180 | ((u >>> 24) & 0x3F)]);
         }
         io[0] = R >>> 1 | R << 31;
         io[1] = L >>> 1 | L << 31;
     }
 
-    static private void initialPermutation (int[] io) {
+    static private void initialPermutation(int[] io) {
         int L = io[0];
         int R = io[1];
         int t = ((R >>> 4) ^ L) & 0x0F0F0F0F;
@@ -613,7 +625,7 @@
         io[1] = R ^ (t << 1);
     }
 
-    static private void finalPermutation (int[] io) {
+    static private void finalPermutation(int[] io) {
         int L = io[1];
         int R = io[0];
         int t = (R >>> 1 ^ L) & 0x55555555;
@@ -633,7 +645,9 @@
         io[0] = R ^ (t << 4);
     }
 
-  static private String getAlgorithm() { return "DES"; }
+    static private String getAlgorithm() {
+        return "DES";
+    }
 
 // Test methods
 //...........................................................................
@@ -643,14 +657,16 @@
         try {
             self_test();
             // time_test(System.out, "1c587f1c13924fef", "305532286d6f295a", "63fac0d034d9f793");
-        } catch (Exception e) { e.printStackTrace(); }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
     }
 
     static private final String[][] tests =
-    {//   KEY                 PLAINTEXT           CIPHERTEXT
-        {"0101010101010101", "95f8a5e5dd31d900", "8000000000000000"},
-        {"0101010101010101", "dd7f121ca5015619", "4000000000000000"},
-        {"0101010101010101", "2e8653104f3834ea", "2000000000000000"},
+      {//   KEY                 PLAINTEXT           CIPHERTEXT
+          {"0101010101010101", "95f8a5e5dd31d900", "8000000000000000"},
+          {"0101010101010101", "dd7f121ca5015619", "4000000000000000"},
+          {"0101010101010101", "2e8653104f3834ea", "2000000000000000"},
 /*
         {"0101010101010101", "4bd388ff6cd81d4f", "1000000000000000"},
         {"0101010101010101", "20b9e767b2fb1456", "0800000000000000"},
@@ -821,10 +837,10 @@
         {"018310dc409b26d6", "1d9d5c5018f728c2", "5f4c038ed12b2e41"},
         {"1c587f1c13924fef", "305532286d6f295a", "63fac0d034d9f793"}
 */
-    };
+      };
 
     static private void self_test()
-    throws Exception {
+      throws Exception {
         DES cryptor = new DES();
         byte[] userKey;
         byte[] tmp, pt, ct;
@@ -837,36 +853,37 @@
             cryptor.initEncrypt(userKey);
             tmp = cryptor.crypt(pt);
             if (!areEqual(ct, tmp))
-                   throw new RuntimeException("encrypt #"+ i +" failed");
+                throw new RuntimeException("encrypt #" + i + " failed");
 
             cryptor.initDecrypt(userKey);
             tmp = cryptor.crypt(ct);
-               if (!areEqual(pt, tmp))
-                throw new RuntimeException("decrypt #"+ i +" failed");
+            if (!areEqual(pt, tmp))
+                throw new RuntimeException("decrypt #" + i + " failed");
         }
-if (DEBUG && debuglevel > 0) System.out.println("Self-test OK");
+        if (DEBUG && debuglevel > 0) System.out.println("Self-test OK");
     }
 
     static private boolean areEqual(byte[] a, byte[] b) {
-      if (a.length != b.length) return false;
-      for (int i=0; i<a.length; i++) {
-	if (a[i] != b[i]) return false;
-      }
-      return true;
+        if (a.length != b.length) return false;
+        for (int i = 0; i < a.length; i++) {
+            if (a[i] != b[i]) return false;
+        }
+        return true;
     }
 
     static private final String HEXSTR = "0123456789abcdef";
+
     static private byte[] hexFromString(String s) {
         s = s.toLowerCase();
-        byte[] ans = new byte[s.length()/2];
-        for (int i=0; i<s.length(); i++) {
-	    if (0 == (i&1)) {
-                ans[i/2] = (byte)(HEXSTR.indexOf(s.charAt(i)) * 16);
+        byte[] ans = new byte[s.length() / 2];
+        for (int i = 0; i < s.length(); i++) {
+            if (0 == (i & 1)) {
+                ans[i / 2] = (byte)(HEXSTR.indexOf(s.charAt(i)) * 16);
             } else {
-                ans[i/2] += HEXSTR.indexOf(s.charAt(i));
-	    }
-	}
-	return ans;
+                ans[i / 2] += HEXSTR.indexOf(s.charAt(i));
+            }
+        }
+        return ans;
     }
 /*
     static private void



1.6       +51 -32    e/src/jsrc/net/vattp/data/DataCommThunk.java

Index: DataCommThunk.java
===================================================================
RCS file: /cvs/e/src/jsrc/net/vattp/data/DataCommThunk.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- DataCommThunk.java	2001/10/03 18:05:28	1.5
+++ DataCommThunk.java	2001/11/10 19:40:37	1.6
@@ -20,7 +20,6 @@
 */
 
 import org.erights.e.develop.trace.Trace;
-import org.erights.e.elib.base.Thunk;
 
 import java.net.Socket;
 
@@ -34,38 +33,58 @@
  *
  * @author Bill Frantz
  */
-/*package*/ class DataCommThunk implements Runnable {
-    static private final int NOTICE_PROBLEM     = 1;
+/*package*/
+class DataCommThunk implements Runnable {
+
+    static private final int NOTICE_PROBLEM = 1;
+
     static private final int SHUT_DOWN_FINISHED = 2;
-    static private final int SEND_FINISHED      = 3;
-    static private final int NEW_INCOMING_MSG   = 4;
-    static private final int ACCEPT_RECEIVER    = 5;
-    static private final int NOTICE_PROBLEM_CM  = 6;
-    static private final int INCOMING_SOCKET    = 7;
-    static private final int SEND_PROGRESS      = 8;
+
+    static private final int SEND_FINISHED = 3;
+
+    static private final int NEW_INCOMING_MSG = 4;
+
+    static private final int ACCEPT_RECEIVER = 5;
+
+    static private final int NOTICE_PROBLEM_CM = 6;
+
+    static private final int INCOMING_SOCKET = 7;
+
+    static private final int SEND_PROGRESS = 8;
 
     int type = 0;
 
     private DataPath myDataPath;    // For Send/RecvThread calls
+
     private VatTPMgr myConnMgr; // For ListenThread calls
+
     private Throwable myException;
+
     private int myWrittenLength;
+
     private int myWrittenCount;
+
     private StreamMessage myContinuation;
+
     private byte[] myMessage;
+
     private RecvThread myRecvThread;
+
     private Socket mySocket;
+
     private NetAddr myRemoteNetAddr;
+
     private NetAddr myLocalNetAddr;
+
     private String myAddress;
 
     /**
-         * Construct a DataCommThunk to call noticeProblem() in a
-         * VatTPMgr object.
-         *
-         * @param connMgr the VatTPMgr object to invoke.
-         * @param e the Exception object describing the problem.
-         */
+     * Construct a DataCommThunk to call noticeProblem() in a
+     * VatTPMgr object.
+     *
+     * @param connMgr the VatTPMgr object to invoke.
+     * @param e the Exception object describing the problem.
+     */
     /*package*/ DataCommThunk(VatTPMgr connMgr, Throwable e) {
         myConnMgr = connMgr;
         myException = e;
@@ -73,12 +92,12 @@
     }
 
     /**
-         * Construct a DataCommThunk to call newInboundSocket in a
-         * VatTPMgr object.
-         *
-         * @param connMgr the DataPath object to invoke.
-         * @param The byte array which is the message.
-         */
+     * Construct a DataCommThunk to call newInboundSocket in a
+     * VatTPMgr object.
+     *
+     * @param connMgr the DataPath object to invoke.
+     * @param The byte array which is the message.
+     */
     /*package*/ DataCommThunk(VatTPMgr connMgr, Socket socket) {
         myConnMgr = connMgr;
         mySocket = socket;
@@ -120,8 +139,7 @@
      */
     /*package*/ DataCommThunk(DataPath conn,
                               byte[] sendIV,
-                              Exception reason)
-    {
+                              Exception reason) {
         myDataPath = conn;
         myMessage = sendIV;
         myException = reason;
@@ -137,7 +155,7 @@
      * @param continuation is the streaming continuation or null.
      */
     /*package*/ DataCommThunk(DataPath conn, int count,
-                int length, /*NullOK*/StreamMessage continuation) {
+                              int length, /*NullOK*/StreamMessage continuation) {
         myDataPath = conn;
         myWrittenCount = count;
         myWrittenLength = length;
@@ -159,12 +177,12 @@
     }
 
     /**
-         * Construct a DataCommThunk to call newInboundSocket in a
-         * VatTPMgr object.
-         *
-         * @param conn the DataPath object to invoke.
-         * @param The byte array which is the message.
-         */
+     * Construct a DataCommThunk to call newInboundSocket in a
+     * VatTPMgr object.
+     *
+     * @param conn the DataPath object to invoke.
+     * @param The byte array which is the message.
+     */
     /*package*/ DataCommThunk(DataPath conn, RecvThread recv,
                               NetAddr remoteNetAddr,
                               NetAddr localNetAddr) {
@@ -190,14 +208,14 @@
                 return;
             case SEND_FINISHED:
                 myDataPath.sendFinished(myWrittenCount,
-                        myWrittenLength, myContinuation);
+                                        myWrittenLength, myContinuation);
                 return;
             case NEW_INCOMING_MSG:
                 myDataPath.newIncomingMsg(myMessage);
                 return;
             case ACCEPT_RECEIVER:
                 myDataPath.acceptReceiver(myRecvThread,
-                        myRemoteNetAddr, myLocalNetAddr);
+                                          myRemoteNetAddr, myLocalNetAddr);
                 return;
             case NOTICE_PROBLEM_CM:
                 myConnMgr.noticeProblem(myException);
@@ -213,6 +231,7 @@
                 throw new Error("Invalid type value=" + type);
         }
     }
+
     public String toString() {
         return super.toString() + " Type=" + type;
     }



1.8       +181 -185  e/src/jsrc/net/vattp/data/DataPath.java

Index: DataPath.java
===================================================================
RCS file: /cvs/e/src/jsrc/net/vattp/data/DataPath.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- DataPath.java	2001/10/02 01:49:35	1.7
+++ DataPath.java	2001/11/10 19:40:37	1.8
@@ -51,7 +51,8 @@
  * and when to panic because no messages have been received.
  * @author Bill Frantz
  */
-/*package*/ class DataPath implements MsgHandler, TickReactor {
+/*package*/
+class DataPath implements MsgHandler, TickReactor {
 
     /** enqueued to effectively close the SynchQueue */
     static /*package*/ final Object theShutDownToken = new Integer(0);
@@ -74,7 +75,7 @@
     private VatTPMgr /*nullOK*/ myConnMgr;
 
     /** Array of MsgHandlers indexed by message type */
-    private MsgHandler[] myMsgHandlers = new MsgHandler[Msg.HIGH_MSG_TYPE+1];
+    private MsgHandler[] myMsgHandlers = new MsgHandler[Msg.HIGH_MSG_TYPE + 1];
 
     /** SynchQueue for queueing outbound messages.  This is initialized
      * during construction, and set to null in shutDownPath. */
@@ -102,15 +103,15 @@
     private Clock myClock;
 
     /** The location the current Send/Recv Threads are (to) (have been) speaking
-        to. */
+     to. */
     private String myRemoteAddr;
 
     /** The InetAddress of the remote end, or null if no connection has been
-        made */
+     made */
     private NetAddr myRemoteNetAddr = null;
 
     /** The InetAddress of the local end, or null if no connection has been
-        made */
+     made */
     private NetAddr myLocalNetAddr = null;
 
     /** The port number we are trying to connect to, or 0 for an inbound
@@ -160,62 +161,61 @@
     // The following fields contain performance counters
 
     /** The total bytes of messages received over this DataPath */
-    /*package*/ long bytesReceived          = 0;
+    /*package*/ long bytesReceived = 0;
 
     /** The total number of messages received over this DataPath */
-    /*package*/ long messagesReceived       = 0;
+    /*package*/ long messagesReceived = 0;
 
     /** The size of the largest message received over this DataPath */
-    /*package*/ int maxReceivedMessageSize  = 0;
+    /*package*/ int maxReceivedMessageSize = 0;
 
     /** The total bytes of messages sent over this DataPath */
-    /*package*/ long bytesSent              = 0;
+    /*package*/ long bytesSent = 0;
 
     /** The total number of messages sent over this DataPath */
-    /*package*/ long messagesSent           = 0;
+    /*package*/ long messagesSent = 0;
 
     /** The size of the largest message sent over this DataPath */
-    /*package*/ int maxSentMessageSize      = 0;
+    /*package*/ int maxSentMessageSize = 0;
 
 
     /** for debugging purposes */
     private ConditionLock myEmbargoLock = new ConditionLock();
 
     /**
-         * Make a new DataPath for an incoming connection
-         *
-         * @param connection The VatTPConnection to notify of status
-         * changes.
-         *
-         * @param socket The Socket to the TCP connection.
-         *
-         * @param identityKeys is the KeyPair which defines the identity of this
-         * vat.
-         *
-         * @param runner is the Runner whose thread we use to synchronize calls
-         * into the DataPath object from the SendThread and ReceiveThread
-         *
-         * @param localFlattenedSearchPath Is the search path we publish for
-         * references to us, flattened into a string.
-         *
-         * @param localSearchPath Is the search path we publish for references
-         * to us, with each element a separate String in an array.
-         */
+     * Make a new DataPath for an incoming connection
+     *
+     * @param connection The VatTPConnection to notify of status
+     * changes.
+     *
+     * @param socket The Socket to the TCP connection.
+     *
+     * @param identityKeys is the KeyPair which defines the identity of this
+     * vat.
+     *
+     * @param runner is the Runner whose thread we use to synchronize calls
+     * into the DataPath object from the SendThread and ReceiveThread
+     *
+     * @param localFlattenedSearchPath Is the search path we publish for
+     * references to us, flattened into a string.
+     *
+     * @param localSearchPath Is the search path we publish for references
+     * to us, with each element a separate String in an array.
+     */
     /*package*/ DataPath(VatTPMgr connMgr,
                          Socket tcpConnection,
                          KeyPair identityKeys,
                          String localVatID,
                          Runner runner,
                          String localFlattenedSearchPath,
-                         VatLocationLookup vls)
-    {
+                         VatLocationLookup vls) {
 
         myConnMgr = connMgr;
         myIsIncoming = true;
         SynchQueue reader =
-            commonConstructionSetup(identityKeys,
-                                    localVatID, null, //no suspendID, incoming
-                                    runner, localFlattenedSearchPath, vls);
+          commonConstructionSetup(identityKeys,
+                                  localVatID, null, //no suspendID, incoming
+                                  runner, localFlattenedSearchPath, vls);
 
         myRemoteAddr = tcpConnection.getInetAddress().getHostAddress();
 
@@ -228,46 +228,46 @@
     }
 
     /**
-             * Make a new DataPath
-             *
-             * @param connMgr is the VatTPMgr if this DataPath is supporting
-             * a "connectToVatAt" operation.  Otherwise it is null.
-             *
-             * @param connection The VatTPConnection to notify of status
-             * changes.
-             *
-             * @param remoteVatID the vatID of the remote vat
-             *
-             * @param remoteAddr is the dotted IP address or DNS name and port number
-             * of the place to try for the remote vat.
-             *
-             * @param addressesTried is a Hashtable of the InetAddresses already
-             *              tried to locate the vat which failed due to host,
-             *              rather than port related problems, and are not to be
-             *              tried again.
-             *
-             * @param identityKeys is the KeyPair which defines the identity of this
-             * vat.
-             *
-             * @param runner is the Runner whose thread we use to synchronize calls
-             * into the DataPath object from the SendThread and ReceiveThread
-             *
-             * @param outgoingSuspendID Is the Suspend ID we are to send to the
-             * remote vat for resuming a connection, or null for a new connection.
-             *
-             * @param macKey is the key used for message authentication for resume,
-             * or null for a new connection.
-             *
-             * @param protocolParms is the AuthSecrets object which has the resume
-             * state for protocol versions an protocol parameters for resuming a
-             * connection, or null for a new connection.
-             *
-             * @param localFlattenedSearchPath Is the search path we publish for
-             * references to us, flattened into a string.
-             *
-             * @param localSearchPath Is the search path we publish for references
-             * to us, with each element a separate String in an array.
-             */
+     * Make a new DataPath
+     *
+     * @param connMgr is the VatTPMgr if this DataPath is supporting
+     * a "connectToVatAt" operation.  Otherwise it is null.
+     *
+     * @param connection The VatTPConnection to notify of status
+     * changes.
+     *
+     * @param remoteVatID the vatID of the remote vat
+     *
+     * @param remoteAddr is the dotted IP address or DNS name and port number
+     * of the place to try for the remote vat.
+     *
+     * @param addressesTried is a Hashtable of the InetAddresses already
+     *              tried to locate the vat which failed due to host,
+     *              rather than port related problems, and are not to be
+     *              tried again.
+     *
+     * @param identityKeys is the KeyPair which defines the identity of this
+     * vat.
+     *
+     * @param runner is the Runner whose thread we use to synchronize calls
+     * into the DataPath object from the SendThread and ReceiveThread
+     *
+     * @param outgoingSuspendID Is the Suspend ID we are to send to the
+     * remote vat for resuming a connection, or null for a new connection.
+     *
+     * @param macKey is the key used for message authentication for resume,
+     * or null for a new connection.
+     *
+     * @param protocolParms is the AuthSecrets object which has the resume
+     * state for protocol versions an protocol parameters for resuming a
+     * connection, or null for a new connection.
+     *
+     * @param localFlattenedSearchPath Is the search path we publish for
+     * references to us, flattened into a string.
+     *
+     * @param localSearchPath Is the search path we publish for references
+     * to us, with each element a separate String in an array.
+     */
     /*package*/ DataPath(VatTPMgr /*nullOK*/ connMgr,
                          VatTPConnection /*nullOK*/ connection,
                          String remoteVatID,
@@ -278,8 +278,7 @@
                          Runner runner,
                          byte[] /*nullOK*/ outgoingSuspendID,
                          AuthSecrets /*nullOK*/ protocolParms,
-                         String localFlattenedSearchPath)
-    {
+                         String localFlattenedSearchPath) {
         myConnMgr = connMgr;
         myDataConnection = connection;
         myRemoteVatID = remoteVatID;
@@ -290,20 +289,20 @@
             myProtocolParms = protocolParms;
         }
         SynchQueue reader =
-            commonConstructionSetup(identityKeys,
-                                    localVatID,
-                                    outgoingSuspendID,
-                                    runner,
-                                    localFlattenedSearchPath,
-                                    //no VLS for outgoing connections
-                                    null);
+          commonConstructionSetup(identityKeys,
+                                  localVatID,
+                                  outgoingSuspendID,
+                                  runner,
+                                  localFlattenedSearchPath,
+                                  //no VLS for outgoing connections
+                                  null);
 
         myRemoteAddr = remoteAddr;
         // Get the port number from the address
         int colon = remoteAddr.indexOf(':');
         if (colon >= 0) {
             myRemotePortNumber
-                    = Integer.parseInt(remoteAddr.substring(colon + 1));
+              = Integer.parseInt(remoteAddr.substring(colon + 1));
         }
 
         //Build the SendThread and RecvThread for this address
@@ -333,17 +332,17 @@
      */
     /*package*/ void acceptReceiver(RecvThread receiver,
                                     NetAddr remoteNetAddr,
-                                    NetAddr localNetAddr)
-    {
+                                    NetAddr localNetAddr) {
         myRecvThread = receiver;
         myRemoteNetAddr = remoteNetAddr;
         myLocalNetAddr = localNetAddr;
         //it's safe to not check optInetAddress() for null, since
         //remoteNetAddr must explicitly have one
         myRemoteAddr = remoteNetAddr.optInetAddress().getHostAddress() + ":"
-                        + remoteNetAddr.getPort();
+          + remoteNetAddr.getPort();
         myRecvThread.start();
-        if (null == myWriter) { // If we are dying, shutdown the recv thread
+        if (null == myWriter) {
+            // If we are dying, shutdown the recv thread
             myRecvThread.shutdown();
         }
     }
@@ -354,7 +353,7 @@
      * @param reason The reason for abandoning the attempt.
      */
     /*package*/ void cantResume(String reason)
-                throws IOException {
+      throws IOException {
         shutDownPath();
         String msg = myRemoteAddr + ": " + reason;
         myDataConnection.identifiedPathDied(msg, this);
@@ -381,8 +380,7 @@
                                                byte[] suspendID,
                                                Runner runner,
                                                String localFlattenedSearchPath,
-                                               VatLocationLookup vls)
-    {
+                                               VatLocationLookup vls) {
         myIdentityKeys = identityKeys;
         myLocalVatID = localVatID;
         myRunner = runner;
@@ -397,7 +395,7 @@
         try {
             registerMsgHandler(Msg.PING, this);
             registerMsgHandler(Msg.PONG, this);
-        } catch(IOException e) {
+        } catch (IOException e) {
             Trace.comm.errorm("Fatal error registering pingpong", e);
             Trace.comm.notifyFatal();
         }
@@ -418,18 +416,17 @@
     }
 
     /**
-         * Connect this DataPath to a VatTPConnection.  Used for incoming sockets
-         * and anonymous outgoing sockets to connect the DataPath after the
-         * remote end has been identified.
-         *
-         * @param connection is the VatTPConnection object to connect to.
-         * @param protocolParms is the protocol versions and parameters
-         * to use for resuming a connection, or null for none.
-         * @return is the flattened search path to use to find the remote end.
-         */
+     * Connect this DataPath to a VatTPConnection.  Used for incoming sockets
+     * and anonymous outgoing sockets to connect the DataPath after the
+     * remote end has been identified.
+     *
+     * @param connection is the VatTPConnection object to connect to.
+     * @param protocolParms is the protocol versions and parameters
+     * to use for resuming a connection, or null for none.
+     * @return is the flattened search path to use to find the remote end.
+     */
     /*package*/ String connectConnection(VatTPConnection connection,
-                                         AuthSecrets protocolParms)
-    {
+                                         AuthSecrets protocolParms) {
         myDataConnection = connection;
         if (null == protocolParms) {
             myProtocolParms = new AuthSecrets();
@@ -464,7 +461,7 @@
      */
     /*package*/void connectToSelf() {
         Assertion.test(null == myDataConnection,
-                "Remote end should not be identitifed");
+                       "Remote end should not be identitifed");
         shutDownPath();
         myConnMgr.connectToSelf(this);
     }
@@ -475,7 +472,7 @@
      * @param reason The reason for abandoning the attempt.
      */
     /*package*/ void duplicatePath(String reason, boolean isIdentified)
-                throws IOException {
+      throws IOException {
         shutDownPath();
         String msg = myRemoteAddr + ": " + reason;
         if (!isIdentified) {
@@ -507,7 +504,7 @@
         if (null == myWriter) return;
         myWriter.enqueue(message);
         if (message instanceof byte[]) {
-            byte[] d = (byte[]) message;
+            byte[] d = (byte[])message;
             ESecureRandom.provideEntropy(d, 1);
         }
     }
@@ -544,19 +541,18 @@
     }
 
     /**
-         * Identify the remote vat's vatID for an incoming connection.
-         *
-         * @param remoteVatID the VatID of the remote vat.
-         * @param remoteSearchPath the search path to use to find the remote vat
-         *        in array form.
-         * @return the code received from
-                VatTPMgr.newIncomingConnectionIdentified
-         */
+     * Identify the remote vat's vatID for an incoming connection.
+     *
+     * @param remoteVatID the VatID of the remote vat.
+     * @param remoteSearchPath the search path to use to find the remote vat
+     *        in array form.
+     * @return the code received from
+     VatTPMgr.newIncomingConnectionIdentified
+     */
     /*package*/ int identifyIncoming(String localVatID,
                                      String remoteVatID,
                                      String remoteSearchPath)
-         throws IOException
-    {
+      throws IOException {
         myRemoteVatID = remoteVatID;
 
         //Save the search path to give to the VatTPConnection when startup
@@ -587,8 +583,7 @@
     /*package*/ Object identifyOutgoing(String localVatID,
                                         String remoteVatID,
                                         String remoteFlattenedSearchPath)
-         throws IOException
-    {
+      throws IOException {
         myRemoteVatID = remoteVatID;
 
         //Save the search path to give to the VatTPConnection when startup
@@ -647,15 +642,15 @@
             if (null != handler) {
                 if (Trace.comm.debug && Trace.ON) {
                     Trace.comm.debugm(this + " calls processMessage in "
-                            + handler + "\n"
-                            + HexStringUtils.byteArrayToReadableHexString(message));
+                                      + handler + "\n"
+                                      + HexStringUtils.byteArrayToReadableHexString(message));
                 }
                 handler.processMessage(message, myDataConnection);
                 return;
             }
         }
         Trace.comm.errorm("No handler for incoming message type\n  " + this
-                    + HexStringUtils.byteArrayToReadableHexString(message));
+                          + HexStringUtils.byteArrayToReadableHexString(message));
     }
 
     /**
@@ -681,7 +676,7 @@
      */
     public void run(int tick) {
         long now = System.currentTimeMillis();
-        if ( (now - lastNetActivity) > Msg.PING_SENDTIME) {
+        if ((now - lastNetActivity) > Msg.PING_SENDTIME) {
             if (0 == timePingSent && null != myWriter) {
                 enqueue(thePingMsg);    //Send a ping
                 if (Trace.comm.event && Trace.ON) {
@@ -689,17 +684,17 @@
                 }
                 timePingSent = System.currentTimeMillis();
             } else {
-                if ( (now - timePingSent) > Msg.PING_TIMEOUT) {
+                if ((now - timePingSent) > Msg.PING_TIMEOUT) {
                     if (null != myWriter) {
                         shutDownPath();
                         if (Trace.comm.usage && Trace.ON) {
                             Trace.comm.usagem("Connection timeout " + this);
                         }
-                    } else if ( (now - timePingSent) > (2*Msg.PING_TIMEOUT) ) {
+                    } else if ((now - timePingSent) > (2 * Msg.PING_TIMEOUT)) {
                         if (null != myClock) {
                             Trace.comm.errorm("Shutdown timeout " + this);
                             Exception reason
-                                    = new IOException("Shutdown Timeout");
+                              = new IOException("Shutdown Timeout");
                             //XXX Thread.stop() has been deprecated
                             mySendThread.stop(reason);
                             myProtocolParms = null;
@@ -729,7 +724,8 @@
      * @see VatTPConnection
      */
     public void processMessage(byte[] message, VatTPConnection connection) {
-        if (Msg.PING == message[0]) {   // got a ping, send pong
+        if (Msg.PING == message[0]) {
+            // got a ping, send pong
             enqueue(thePongMsg);
         }
         //Do nothing with a PONG message.  The time received will have already
@@ -744,43 +740,43 @@
     }
 
     /**
-         * Register a MsgHandler for a particular message type.  It will be called
-         * whenever a new message of the specified type arrives.  It will also
-         * be called when the connection dies.
-         *
-         * @param msgType is the message type. It must be chosen from the types
-         * defined in the definition class Msg.  It is an error to register more
-         * than one handler for a message type.
-         * It is a fatal error if the msgType is out of range.
-         * It is a fatal error to register a handler after the
-         * reactToNewConnection method of the object registered with the
-         * VatTPMgr has returned.
-         *
-         * @param handler is an object which implements the MsgHandler interface.
-         * It will be called with processMessage when a message
-         * of msgType is received from the remote vat.  It will be called with
-         * connectionDead when this connection dies.
-         *
-         * @exception IOException is thrown if
-         * there is already a handler registered for this message type.
-         *
-         * @see Msg
-         * @see MsgHandler
-         * @see VatTPMgr
-         */
+     * Register a MsgHandler for a particular message type.  It will be called
+     * whenever a new message of the specified type arrives.  It will also
+     * be called when the connection dies.
+     *
+     * @param msgType is the message type. It must be chosen from the types
+     * defined in the definition class Msg.  It is an error to register more
+     * than one handler for a message type.
+     * It is a fatal error if the msgType is out of range.
+     * It is a fatal error to register a handler after the
+     * reactToNewConnection method of the object registered with the
+     * VatTPMgr has returned.
+     *
+     * @param handler is an object which implements the MsgHandler interface.
+     * It will be called with processMessage when a message
+     * of msgType is received from the remote vat.  It will be called with
+     * connectionDead when this connection dies.
+     *
+     * @exception IOException is thrown if
+     * there is already a handler registered for this message type.
+     *
+     * @see Msg
+     * @see MsgHandler
+     * @see VatTPMgr
+     */
 
-    /*package*/ void registerMsgHandler (int msgType, MsgHandler handler)
-                        throws IOException {
+    /*package*/ void registerMsgHandler(int msgType, MsgHandler handler)
+      throws IOException {
         if (Trace.comm.debug && Trace.ON) {
-            Trace.comm.debugm("registerMsgHandler="+ msgType +"("
-                    + handler +") on " + this);
+            Trace.comm.debugm("registerMsgHandler=" + msgType + "("
+                              + handler + ") on " + this);
         }
         Assertion.test(msgType > 0 || msgType <= Msg.HIGH_MSG_TYPE,
-            "msgType=" + msgType + " out of range (1 .. " + Msg.HIGH_MSG_TYPE
-            + ")");
+                       "msgType=" + msgType + " out of range (1 .. " + Msg.HIGH_MSG_TYPE
+                       + ")");
         if (null != myMsgHandlers[msgType]) {
             throw new IOException(myMsgHandlers[msgType]
-                    + " already registered for msgType=" + msgType);
+                                  + " already registered for msgType=" + msgType);
         }
         myMsgHandlers[msgType] = handler;
     }
@@ -804,7 +800,7 @@
      * @param continuation The notification passed to sendMessage.
      */
     /*package*/ void sendFinished(int count, int length,
-                StreamMessage /*NullOK*/ msg) {
+                                  StreamMessage /*NullOK*/ msg) {
         bytesSent += length;
         messagesSent += count;
         if (maxSentMessageSize < length) maxSentMessageSize = length;
@@ -824,7 +820,7 @@
      *          receive data from the remote vat.
      */
     /*package*/ void setAuthorizationSecrets(byte[] dhSecret,
-                                      byte[] sendSequence, byte[] recvSequence) {
+                                             byte[] sendSequence, byte[] recvSequence) {
         myProtocolParms.myDHSecret = dhSecret;
         myProtocolParms.myOutgoingSequence = sendSequence;
         myProtocolParms.myIncomingSequence = recvSequence;
@@ -845,15 +841,15 @@
         if (null == myMsgHandlers) {
             if (null != myProtocolParms) {
                 myProtocolParms.myOutgoingSequence = sendSequence;
-           }
+            }
             try {
                 myDataConnection.unRegisterMsgHandler(Msg.PING, this);
                 myDataConnection.unRegisterMsgHandler(Msg.PONG, this);
-            } catch(IOException e) {
+            } catch (IOException e) {
                 Trace.comm.errorm("Exception unregistering ping/pong", e);
             }
         } else {
-            for (int i=0; i<myMsgHandlers.length; i++) {
+            for (int i = 0; i < myMsgHandlers.length; i++) {
                 MsgHandler h = myMsgHandlers[i];
                 if (null != h) {
                     if (Trace.comm.debug && Trace.ON) {
@@ -876,7 +872,7 @@
     /*package*/ void shutDownPath() {
         if (Trace.comm.debug && Trace.ON) {
             Trace.comm.debugm("shutDownPath " + this + "\nfor "
-                                + myDataConnection);
+                              + myDataConnection);
         }
         // Enqueue a shutdown to have the SendThread send the queued messages
         // and then shutdown.  SendThread will call shutdownFinished when the
@@ -905,9 +901,9 @@
      * @param protocolSuite the type of authentication selected.
      */
     /*package*/ void startupSuccessful(
-                String eMsgProtocolVersion,
-                String protocolSuite)
-    throws IOException {
+      String eMsgProtocolVersion,
+      String protocolSuite)
+      throws IOException {
 
         if (null != protocolSuite) {
             myProtocolParms.myEProtocolVersion = eMsgProtocolVersion;
@@ -927,23 +923,23 @@
 
         if (Trace.comm.usage && Trace.ON) {
             Trace.comm.usagem("Link to " + myRemoteVatID
-                    + " uses CommProtocol " + myProtocolParms.myProtocolSuite
-                    + ", Emsg protocol="
-                    + myProtocolParms.myEProtocolVersion);
+                              + " uses CommProtocol " + myProtocolParms.myProtocolSuite
+                              + ", Emsg protocol="
+                              + myProtocolParms.myEProtocolVersion);
         }
 
         myDataConnection.startupSuccessful(this, myRemoteVatID,
-                        myRemoteNetAddr, myLocalNetAddr,
-                        myRemotePortNumber, myProtocolParms);
+                                           myRemoteNetAddr, myLocalNetAddr,
+                                           myRemotePortNumber, myProtocolParms);
         myMsgHandlers = null;   // Done handling messages
     }
 
     /**
-         * Stop the start up protocol on this DataPath.  This method is
-         * called by the VatTPMgr when it determines that there are
-         * two connections being built between this vat and another vat, and
-         * that this connection is the one that should be abandonded.
-         */
+     * Stop the start up protocol on this DataPath.  This method is
+     * called by the VatTPMgr when it determines that there are
+     * two connections being built between this vat and another vat, and
+     * that this connection is the one that should be abandonded.
+     */
     /*package*/ void stopStartUpProtocol() {
         myStartUpProtocol.stopStartUpProtocol();
         myDataConnection = null;    // We've been disowned
@@ -955,7 +951,7 @@
      */
     public String toString() {
         return super.toString() + "|" + myRemoteAddr + "|"
-                    + myRemoteVatID + ", startupState=" + getStartupState();
+          + myRemoteVatID + ", startupState=" + getStartupState();
     }
 
     /**
@@ -994,20 +990,20 @@
      * @see MsgHandler
      */
 
-    /*package*/ void unRegisterMsgHandler (int msgType, MsgHandler handler)
-                        throws IOException {
+    /*package*/ void unRegisterMsgHandler(int msgType, MsgHandler handler)
+      throws IOException {
         if (Trace.comm.debug && Trace.ON) {
-            Trace.comm.debugm("unRegisterMsgHandler="+ msgType +"("
-                    + handler +") on " + this);
+            Trace.comm.debugm("unRegisterMsgHandler=" + msgType + "("
+                              + handler + ") on " + this);
         }
         if (msgType <= 0 || msgType > Msg.HIGH_MSG_TYPE) {
-            Trace.comm.errorm("msgType=" + msgType +" out of range (1 .. "
-                                  + Msg.HIGH_MSG_TYPE);
+            Trace.comm.errorm("msgType=" + msgType + " out of range (1 .. "
+                              + Msg.HIGH_MSG_TYPE);
             Trace.comm.notifyFatal();
         }
         if (handler != myMsgHandlers[msgType]) {
             throw new IOException("Registered=" + myMsgHandlers[msgType]
-                    + " is not the same as " + handler + " for msgType=" + msgType);
+                                  + " is not the same as " + handler + " for msgType=" + msgType);
         }
         myMsgHandlers[msgType] = null;
     }



1.5       +18 -15    e/src/jsrc/net/vattp/data/Decrypt3DES.java

Index: Decrypt3DES.java
===================================================================
RCS file: /cvs/e/src/jsrc/net/vattp/data/Decrypt3DES.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- Decrypt3DES.java	2001/09/06 09:55:39	1.4
+++ Decrypt3DES.java	2001/11/10 19:40:37	1.5
@@ -20,6 +20,7 @@
 package net.vattp.data;
 
 //import cryptix.provider.cipher.DES;
+
 import net.vattp.security.MicroTime;
 import org.erights.e.develop.assertion.Assertion;
 import org.erights.e.develop.exception.NestedException;
@@ -30,12 +31,15 @@
  * @author Bill Frantz
  */
 
-/*package*/ class Decrypt3DES extends MsgTransformer {
+/*package*/
+class Decrypt3DES extends MsgTransformer {
 
     private byte[] myIV;
+
     private byte[] myDESKeys;
 
     private byte[] myPreviousBlock = new byte[8];
+
     private byte[] myCurrentBlock = null;
 
     private DES myDes1, myDes2, myDes3;
@@ -45,7 +49,7 @@
     /*package*/ Decrypt3DES(byte[] desKeys, byte[] iv) {
         myDESKeys = desKeys;
         myIV = iv;
-        System.arraycopy(myIV,0, myPreviousBlock,0, 8);
+        System.arraycopy(myIV, 0, myPreviousBlock, 0, 8);
         try {
             byte[] key = new byte[8];
             System.arraycopy(myDESKeys, 0, key, 0, 8);
@@ -57,8 +61,7 @@
             System.arraycopy(myDESKeys, 16, key, 0, 8);
             myDes3 = new DES();
             myDes3.initDecrypt(key);
-        }
-        catch (Exception e) {
+        } catch (Exception e) {
             Trace.comm.errorm("Problem initializing DES keys", e);
             throw new NestedException("Problem initializing DES keys", e);
         }
@@ -66,7 +69,7 @@
 
     /*package*/ byte[] getSuspendInfo() {
         byte[] val = new byte[8];
-        System.arraycopy(myIV,0, val,0, 8);
+        System.arraycopy(myIV, 0, val, 0, 8);
         increment(val);
         return val;
     }
@@ -77,17 +80,17 @@
         } else {
             myCurrentBlock = new byte[8];
         }
-        System.arraycopy(myIV,0, myPreviousBlock,0, 8);
+        System.arraycopy(myIV, 0, myPreviousBlock, 0, 8);
     }
 
     /*package*/ void transform(byte[] buffer, int off, int len) {
 
         long startTime = Trace.comm.timing ? MicroTime.queryTimer() : 0;
-        Assertion.test(0==(len&0x7),
+        Assertion.test(0 == (len & 0x7),
                        "Buffer length not a multiple of 8, len = "
                        + len);
 
-        for (int cursor=off; cursor<off+len; cursor+=8) {
+        for (int cursor = off; cursor < off + len; cursor += 8) {
             //Save current block's cyphertext for CBC mode
             System.arraycopy(buffer, cursor, myCurrentBlock, 0, 8);
             //Decrypt a block - 3DES Decrypt(Encrypt(Decrypt()))
@@ -95,20 +98,20 @@
             myDes2.update(buffer, cursor, 8, buffer, cursor);
             myDes1.update(buffer, cursor, 8, buffer, cursor);
             xor8(buffer, cursor, myPreviousBlock);  // Do CBC mode
-            System.arraycopy(myCurrentBlock,0, myPreviousBlock,0, 8);
+            System.arraycopy(myCurrentBlock, 0, myPreviousBlock, 0, 8);
         }
         if (Trace.comm.timing && Trace.ON) {
             Trace.comm.timingm("Pkt3DESDecrypt(" + buffer.length + "), time "
-                + (MicroTime.queryTimer() - startTime) + " microseconds");
+                               + (MicroTime.queryTimer() - startTime) + " microseconds");
         }
     }
 
     private void xor8(byte[] inOut, int off, byte[] in) {
-        for (int i=0; i<8; i++) inOut[off+i] ^= in[i];
+        for (int i = 0; i < 8; i++) inOut[off + i] ^= in[i];
     }
 
     private void increment(byte[] value) {
-        for (int i=value.length-1; i>=0; i--) {
+        for (int i = value.length - 1; i >= 0; i--) {
             byte v = (value[i] += 1);
             if (0 != v) break;
         }
@@ -116,9 +119,9 @@
 
     static private String eightToHex(byte[] b, int offset) {
         String ret = "";
-        for (int i=offset; i<offset+8; i++) {
-            ret += "0123456789abcdef".charAt((b[i]>>4)&0xf);
-            ret += "0123456789abcdef".charAt(b[i]&0xf);
+        for (int i = offset; i < offset + 8; i++) {
+            ret += "0123456789abcdef".charAt((b[i] >> 4) & 0xf);
+            ret += "0123456789abcdef".charAt(b[i] & 0xf);
         }
         return ret;
     }



1.5       +28 -25    e/src/jsrc/net/vattp/data/EARL.java

Index: EARL.java
===================================================================
RCS file: /cvs/e/src/jsrc/net/vattp/data/EARL.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- EARL.java	2001/09/07 05:49:20	1.4
+++ EARL.java	2001/11/10 19:40:37	1.5
@@ -72,9 +72,13 @@
 public class EARL {
 
     private String myURI;
+
     private ConstList mySearchPath;
+
     private String myVatID;
+
     private String mySwissStr;
+
     private long myExpiration;
 
     /**
@@ -93,8 +97,7 @@
     public EARL(ConstList searchPath,
                 String vatID,
                 BigInteger swissNum,
-                long expiration)
-    {
+                long expiration) {
         mySearchPath = searchPath;
         myVatID = vatID;
         mySwissStr = BigIntegerSugar.toString64(swissNum);
@@ -131,14 +134,14 @@
      *
      */
     static public String flattenSearchPath(ConstList path) {
-        String ret = "" ;
+        String ret = "";
         if (path == null || path.size() == 0) {
             return ret; // could be reasonable to throw an exception here...
         }
 
         int i = 0;
         while (i < path.size() - 1) {
-            ret += path.get(i++) + ";" ;
+            ret += path.get(i++) + ";";
         }
         ret += path.get(i);
         return ret;
@@ -177,52 +180,52 @@
         while (rest.toLowerCase().startsWith("cap:")) {
             rest = rest.substring("cap:".length());
         }
-        if (! rest.startsWith("//")) {
+        if (!rest.startsWith("//")) {
             throw new MalformedURLException(
-                    "URI "+uri+" does not start with cap://");
+              "URI " + uri + " does not start with cap://");
         }
         rest = rest.substring("//".length());
         int i = rest.indexOf('/');
-        if (i<1) {
+        if (i < 1) {
             throw new MalformedURLException(
-                    "URI "+uri+" does not have a search path");
+              "URI " + uri + " does not have a search path");
         }
         String path = rest.substring(0, i);
-        rest = rest.substring(i+1);
+        rest = rest.substring(i + 1);
         mySearchPath = parseSearchPath(path);
 
         i = rest.indexOf('/');
-        if (i<1) {
+        if (i < 1) {
             throw new MalformedURLException(
-                    "URI "+uri+" does not have a vatID");
+              "URI " + uri + " does not have a vatID");
         }
         myVatID = rest.substring(0, i);
-        rest = rest.substring(i+1);
+        rest = rest.substring(i + 1);
 
         i = rest.indexOf('/');
-        if (i<0) i = rest.length();
-        if (i<1) {
+        if (i < 0) i = rest.length();
+        if (i < 1) {
             throw new MalformedURLException(
-                    "URI "+uri+" does not have an swissStr");
+              "URI " + uri + " does not have an swissStr");
         }
         mySwissStr = rest.substring(0, i);
         if (rest.length() > i) {
-            rest = rest.substring(i+1);
+            rest = rest.substring(i + 1);
             try {
-                myExpiration  = ETimeFormat.parseTime(rest);
+                myExpiration = ETimeFormat.parseTime(rest);
             } catch (ParseException e) {
                 throw new MalformedURLException("Parsing expiration date \""
-                                + rest + "\" "+ e.toString());
+                                                + rest + "\" " + e.toString());
             }
         } else {
             myExpiration = Long.MAX_VALUE;
         }
 
         if (Trace.comm.debug && Trace.ON) {
-            for (i=0; i < mySearchPath.size(); i++) {
-                Trace.comm.debugm("mySearchPath["+ i +"]="+ mySearchPath.get(i));
+            for (i = 0; i < mySearchPath.size(); i++) {
+                Trace.comm.debugm("mySearchPath[" + i + "]=" + mySearchPath.get(i));
             }
-            Trace.comm.debugm("myVatID="+ myVatID +" mySwissStr="+ mySwissStr);
+            Trace.comm.debugm("myVatID=" + myVatID + " mySwissStr=" + mySwissStr);
         }
     }
 
@@ -244,12 +247,12 @@
         }
         count = 1;
         start = -1;
-        while ((start = path.indexOf(';', start+1)) >= 0) {
+        while ((start = path.indexOf(';', start + 1)) >= 0) {
             count++;
         }
         parts = new String[count];
         start = 0;
-        for (int i=0; i<count-1; i++) {
+        for (int i = 0; i < count - 1; i++) {
             end = path.indexOf(';', start);
             parts[i] = path.substring(start, end);
             if (Trace.comm.debug && Trace.ON) {
@@ -257,9 +260,9 @@
             }
             start = end + 1;
         }
-        parts[count-1] = path.substring(start);
+        parts[count - 1] = path.substring(start);
         if (Trace.comm.debug && Trace.ON) {
-            Trace.comm.debugm("found " + parts[count-1]);
+            Trace.comm.debugm("found " + parts[count - 1]);
         }
         return ConstList.fromArray(parts);
     }



1.5       +26 -19    e/src/jsrc/net/vattp/data/Encrypt3DES.java

Index: Encrypt3DES.java
===================================================================
RCS file: /cvs/e/src/jsrc/net/vattp/data/Encrypt3DES.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- Encrypt3DES.java	2001/09/06 09:55:39	1.4
+++ Encrypt3DES.java	2001/11/10 19:40:37	1.5
@@ -19,6 +19,7 @@
 package net.vattp.data;
 
 //import cryptix.provider.cipher.DES;
+
 import net.vattp.security.MicroTime;
 import org.erights.e.develop.assertion.Assertion;
 import org.erights.e.develop.exception.NestedException;
@@ -29,15 +30,19 @@
  * @author Bill Frantz
  */
 
-/*package*/ class Encrypt3DES extends MsgTransformer {
+/*package*/
+class Encrypt3DES extends MsgTransformer {
 
     private byte[] myIV;
+
     private byte[] myDESKeys;
+
     private boolean myIsStandardCBC;
 
     private final byte[] myPreviousBlock = new byte[8];
 
     private final byte[] myPad = new byte[8];
+
     private DES myDes1, myDes2, myDes3;
 
     /*package*/ Encrypt3DES(byte[] desKeys, byte[] iv, boolean isStandardCBC) {
@@ -55,34 +60,36 @@
             System.arraycopy(myDESKeys, 16, key, 0, 8);
             myDes3 = new DES();
             myDes3.initEncrypt(key);
-        }
-        catch (Exception e) {
+        } catch (Exception e) {
             Trace.comm.errorm("Problem initializing DES keys", e);
             throw new NestedException("Problem initializing DES keys", e);
         }
-        System.arraycopy(myIV,0, myPreviousBlock,0, 8);
+        System.arraycopy(myIV, 0, myPreviousBlock, 0, 8);
     }
 
-    /*package*/ void init() {}  // NOP
+    /*package*/ void init() {
+    }  // NOP
 
     /*package*/ byte[] getSuspendInfo() {
         if (Trace.comm.debug & Trace.ON) {
-            Trace.comm.debugm("Returning IV=" + eightToHex(myIV,0));
+            Trace.comm.debugm("Returning IV=" + eightToHex(myIV, 0));
         }
-        if (myIsStandardCBC) return myPreviousBlock;
-        else return myIV;
+        if (myIsStandardCBC)
+            return myPreviousBlock;
+        else
+            return myIV;
     }
 
     /*package*/ void transform(byte[] buffer, int off, int len) {
         long startTime = Trace.comm.timing ? MicroTime.queryTimer() : 0;
-        if (0 != (len&7)) {
-            Assertion.test(false, "Length must be a multiple of 8, len="+len);
+        if (0 != (len & 7)) {
+            Assertion.test(false, "Length must be a multiple of 8, len=" + len);
         }
         if (!myIsStandardCBC) {
-            System.arraycopy(myIV,0, myPreviousBlock,0, 8);
+            System.arraycopy(myIV, 0, myPreviousBlock, 0, 8);
             increment(myIV);
         }
-        for (int cursor=off; cursor<off+len; cursor+=8) {
+        for (int cursor = off; cursor < off + len; cursor += 8) {
             if (Trace.comm.verbose && Trace.ON) {
                 Trace.comm.verbosem("Plaintext=" + eightToHex(buffer, cursor));
             }
@@ -91,21 +98,21 @@
             myDes1.update(buffer, cursor, 8, buffer, cursor);
             myDes2.update(buffer, cursor, 8, buffer, cursor);
             myDes3.update(buffer, cursor, 8, buffer, cursor);
-            System.arraycopy(buffer, cursor, myPreviousBlock,0, 8);
+            System.arraycopy(buffer, cursor, myPreviousBlock, 0, 8);
         }
         if (Trace.comm.timing && Trace.ON) {
             Trace.comm.timingm("Pkt3DESEncrypt(" + buffer.length + "), time "
-                + (MicroTime.queryTimer() - startTime) + " microseconds");
+                               + (MicroTime.queryTimer() - startTime) + " microseconds");
         }
     }
 
 
     private void xor(byte[] inOut, int offset, byte[] in) {
-        for (int i=0; i<8; i++) inOut[offset+i] ^= in[i];
+        for (int i = 0; i < 8; i++) inOut[offset + i] ^= in[i];
     }
 
     private void increment(byte[] value) {
-        for (int i=value.length-1; i>=0; i--) {
+        for (int i = value.length - 1; i >= 0; i--) {
             byte v = (value[i] += 1);
             if (0 != v) break;
         }
@@ -113,9 +120,9 @@
 
     static private String eightToHex(byte[] b, int offset) {
         String ret = "";
-        for (int i=offset; i<offset+8; i++) {
-            ret += "0123456789abcdef".charAt((b[i]>>4)&0xf);
-            ret += "0123456789abcdef".charAt(b[i]&0xf);
+        for (int i = offset; i < offset + 8; i++) {
+            ret += "0123456789abcdef".charAt((b[i] >> 4) & 0xf);
+            ret += "0123456789abcdef".charAt(b[i] & 0xf);
         }
         return ret;
     }



1.5       +16 -10    e/src/jsrc/net/vattp/data/ListenThread.java

Index: ListenThread.java
===================================================================
RCS file: /cvs/e/src/jsrc/net/vattp/data/ListenThread.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- ListenThread.java	2001/10/02 01:29:18	1.4
+++ ListenThread.java	2001/11/10 19:40:37	1.5
@@ -41,11 +41,15 @@
  *          ConnectionMgr's searchPath.
  */
 
-/*package*/ class ListenThread extends Thread {
+/*package*/
+class ListenThread extends Thread {
 
     private boolean myTerminateFlag = false;
+
     private UserThread myUserThread;
+
     private InetAddress myOptIP = null;
+
     private ServerSocket myListenServerSocket;
 
     /** The VatTPMgr to report new Sockets to */
@@ -56,21 +60,22 @@
 
     /** An object to synchronize communication with the user thread */
     private Object myUserThreadLock = new Object();
+
     private boolean mySuspended = false;
 
     /**
-         * Construct a new object to run in its own thread and listen on a
-         * ServerSocket for new incoming connections.
-         *
-         * @param optLocalAddress The local address we will listen on.
-         * @param connMgr the VatTPMgr to be notified about
-         *  interesting events (new connections and errors) that happen while
-         *  listening.
-         */
+     * Construct a new object to run in its own thread and listen on a
+     * ServerSocket for new incoming connections.
+     *
+     * @param optLocalAddress The local address we will listen on.
+     * @param connMgr the VatTPMgr to be notified about
+     *  interesting events (new connections and errors) that happen while
+     *  listening.
+     */
     /*package*/ ListenThread(String optLocalAddress,
                              VatTPMgr connMgr,
                              Runner runner)
-    throws UnknownHostException, IOException {
+      throws UnknownHostException, IOException {
         setDaemon(true);
         myUserThread = new UserThread(myUserThreadLock);
         myConnMgr = connMgr;
@@ -110,6 +115,7 @@
             }
         }
     }
+
     private void noticeProblem(Throwable t) {
         callMgr(new DataCommThunk(myConnMgr, t));
     }



1.7       +16 -15    e/src/jsrc/net/vattp/data/Msg.java

Index: Msg.java
===================================================================
RCS file: /cvs/e/src/jsrc/net/vattp/data/Msg.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- Msg.java	2001/10/03 00:27:24	1.6
+++ Msg.java	2001/11/10 19:40:37	1.7
@@ -40,10 +40,10 @@
     // actually assign something to the first byte of the message.
 
     /** Supported versions of the E protocol.  */
-    static /*package*/ final byte PROTOCOL_VERSION  = 1;
+    static /*package*/ final byte PROTOCOL_VERSION = 1;
 
     /** Initial connection setup message */
-    static /*package*/ final byte STARTUP           = 2;
+    static /*package*/ final byte STARTUP = 2;
 
     /** STARTUP response showing which protocol version to use */
     static /*package*/ final byte PROTOCOL_ACCEPTED = 3;
@@ -51,38 +51,37 @@
     /** Suspend or shutdown this connection.  A shutdown message has only
      * the message type.  A suspend messages also has the suspendID as
      * an encoded string parameter. */
-    static /*package*/ final byte SUSPEND           = 4;
+    static /*package*/ final byte SUSPEND = 4;
 
     /** Ping other end to ensure connection still intact */
-    static /*package*/ final byte PING              = 5;
+    static /*package*/ final byte PING = 5;
 
     /** Response to a PING message */
-    static /*package*/ final byte PONG              = 6;
+    static /*package*/ final byte PONG = 6;
 
     /** E level message to an object at the remote end */
-    static      public final byte E_MSG             = 7;
+    static public final byte E_MSG = 7;
 
     /** RMI Comm message to a stream at the other end */
-    static      public final byte TUNNEL_MSG        = 8;
+    static public final byte TUNNEL_MSG = 8;
 
     // We want to fill in here with other message codes to keep the allocation
     // compact.
 
 
     /** Highest message type allocated (used to allocate arrays) */
-    static /*package*/ final byte HIGH_MSG_TYPE     = 8;
+    static /*package*/ final byte HIGH_MSG_TYPE = 8;
 
 
-
     /** Maximum length message permitted on a connection.  This limit is
      * enforced by the VatTPConnection object.*/
-    static public final int MAX_OUTBOUND_MSG_LENGTH = 1024*1024;
+    static public final int MAX_OUTBOUND_MSG_LENGTH = 1024 * 1024;
 
     /** Maximum length message we will receive.  This length is set longer
      * than MAX_OUTBOUND_MSG_LENGTH to allow for MAC overhead etc.  This
      * limit is enforced by the RecvThread. */
     static /*package*/ final int MAX_INBOUND_MSG_LENGTH
-                                    =  MAX_OUTBOUND_MSG_LENGTH + 256;
+      = MAX_OUTBOUND_MSG_LENGTH + 256;
 
 
     /**
@@ -95,15 +94,17 @@
     /** The tick rate for the connection keep alive clock.  Used in
      * conjunction with PING_SENDTIME and PING_TIMEOUT to ensure that the
      * connection is still in good working order. In milliseconds.*/
-    static /*package*/ final long TICK_RATE = 15*1000*TIME_FUDGE;
+    static /*package*/ final long TICK_RATE = 15 * 1000 * TIME_FUDGE;
 
     /** The timeout for no messages received.  When this timeout is exceeded,
      * we send a ping message.  In milliseconds.*/
-    static /*package*/ final long PING_SENDTIME = 20*1000*TIME_FUDGE;
+    static /*package*/ final long PING_SENDTIME = 20 * 1000 * TIME_FUDGE;
 
     /** The timeout for a ping.  If we don't receive a message within this
      * time after we have sent a ping, we declare the connection down.
      * In milliseconds.*/
-    static /*package*/ final long PING_TIMEOUT = 20*1000*TIME_FUDGE;
-    private Msg() {}    // This class is only static final values.
+    static /*package*/ final long PING_TIMEOUT = 20 * 1000 * TIME_FUDGE;
+
+    private Msg() {
+    }    // This class is only static final values.
 }



1.2       +3 -1      e/src/jsrc/net/vattp/data/MsgTransformer.java

Index: MsgTransformer.java
===================================================================
RCS file: /cvs/e/src/jsrc/net/vattp/data/MsgTransformer.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- MsgTransformer.java	2000/12/21 22:15:18	1.1
+++ MsgTransformer.java	2001/11/10 19:40:37	1.2
@@ -28,7 +28,9 @@
  * @author Bill Frantz
  */
 
-/*package*/ abstract class MsgTransformer {
+/*package*/
+abstract class MsgTransformer {
+
     /**
      * Get any information which will be required to resume a suspended
      * connection.



1.4       +3 -1      e/src/jsrc/net/vattp/data/NetAddr.java

Index: NetAddr.java
===================================================================
RCS file: /cvs/e/src/jsrc/net/vattp/data/NetAddr.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- NetAddr.java	2001/09/06 09:55:39	1.3
+++ NetAddr.java	2001/11/10 19:40:37	1.4
@@ -32,8 +32,10 @@
  * @author Bill Frantz (Based on work by Eric Messick and Chip Morningstar)
  */
 public class NetAddr {
+
     /** null means a port associated with all local IP addresses */
     private InetAddress myOptIP;
+
     private int myPortNumber;
 
     /**
@@ -68,7 +70,7 @@
         if (colon < 0) {
             myPortNumber = 0;
         } else {
-            myPortNumber = Integer.parseInt(optAddr.substring(colon + 1)) ;
+            myPortNumber = Integer.parseInt(optAddr.substring(colon + 1));
             optAddr = optAddr.substring(0, colon);
         }
         int slash = optAddr.indexOf('/');



1.8       +17 -9     e/src/jsrc/net/vattp/data/NetConfig.java

Index: NetConfig.java
===================================================================
RCS file: /cvs/e/src/jsrc/net/vattp/data/NetConfig.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- NetConfig.java	2001/10/02 01:29:18	1.7
+++ NetConfig.java	2001/11/10 19:40:37	1.8
@@ -45,7 +45,7 @@
      *
      */
     static public final StaticMaker NetConfigMaker
-        = StaticMaker.make(NetConfig.class);
+      = StaticMaker.make(NetConfig.class);
 
     /**
      * @serial Where I register so others can find me. <p>
@@ -107,8 +107,7 @@
      */
     public NetConfig(ConstList vlsPath,
                      ConstList searchPath,
-                     String optListenAddr)
-    {
+                     String optListenAddr) {
         myVLSPath = vlsPath;
         mySearchPath = searchPath;
         myOptListenAddr = optListenAddr;
@@ -128,7 +127,9 @@
     /**
      * Where I register so others can find me.
      */
-    public ConstList getVLSPath() { return myVLSPath; }
+    public ConstList getVLSPath() {
+        return myVLSPath;
+    }
 
     /**
      * Where others should look for me.  This path is used in
@@ -140,7 +141,9 @@
      * common bad firewall technique).  Configuration
      * parameter read as a JavaBeans property.
      */
-    public ConstList getSearchPath() { return mySearchPath; }
+    public ConstList getSearchPath() {
+        return mySearchPath;
+    }
 
     /**
      * If we're on the air, this must be the TCP/IP address of
@@ -150,7 +153,9 @@
      * socket address is preferred -- nothing more.  Configuration
      * parameter read as a JavaBeans property.
      */
-    public String getOptListenAddr() { return myOptListenAddr; }
+    public String getOptListenAddr() {
+        return myOptListenAddr;
+    }
 
     /**
      * Used to make a post-onTheAir NetConfig from a pre-onTheAir one. <p>
@@ -170,8 +175,11 @@
     public void printOn(TextWriter out) throws IOException {
         out.print("<NetConfig:");
         TextWriter nest = out.indent();
-        nest.lnPrint("      vlsPath: "); nest.print(myVLSPath);
-        nest.lnPrint("   searchPath: "); nest.print(mySearchPath);
-        nest.lnPrint("optListenAddr: "); nest.print(myOptListenAddr, ">");
+        nest.lnPrint("      vlsPath: ");
+        nest.print(myVLSPath);
+        nest.lnPrint("   searchPath: ");
+        nest.print(mySearchPath);
+        nest.lnPrint("optListenAddr: ");
+        nest.print(myOptListenAddr, ">");
     }
 }



1.7       +126 -95   e/src/jsrc/net/vattp/data/RecvThread.java

Index: RecvThread.java
===================================================================
RCS file: /cvs/e/src/jsrc/net/vattp/data/RecvThread.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- RecvThread.java	2001/10/02 01:29:18	1.6
+++ RecvThread.java	2001/11/10 19:40:37	1.7
@@ -48,12 +48,17 @@
  * incoming connection has been detected in ListenThread.<p>
  * @author Bill Frantz
  */
-/*package*/ class RecvThread extends Thread {
+/*package*/
+class RecvThread extends Thread {
+
     // Index: 2=transforming, 1=isDoingMac
-    static private final int HEADER_INVALID    = -1;
+    static private final int HEADER_INVALID = -1;
+
     static private final int HEADER_INT_LENGTH = 0;
-    static private final int HEADER_VLEN_SHA1  = 1;
-    static private final int HEADER_VLEN_HMAC  = 2;
+
+    static private final int HEADER_VLEN_SHA1 = 1;
+
+    static private final int HEADER_VLEN_HMAC = 2;
     // Note that the header lengths must be a multiple of the blocksize
     // of the encryption used (8 for 3DES).  AES implementation take warning.
     //                                             0   1   2
@@ -63,34 +68,46 @@
     static private final int NOTIFY_EVERY = 10000;
 
     private InputStream myInputStream;
+
     private DataPath myDataPath;
+
     private boolean myTerminateFlag;
+
     private int myBufferLength;
 
     /** The runner we will synchronize with when calling the DataPath*/
     private Runner myRunner;
 
     private byte[] myHeader = new byte[4];  // Protocol negotation header
+
     private boolean myChangeProtocolIsOk = false;
 
     // The following fields are for aggragating messages
     private boolean myIsAggragating = false;
+
     private Vector myMessagesToPass = new Vector();
 
     // The following field is for message transformation.  It is skeleton
     // support for future HTTP tunnelling.   It could also be used to
     // implement a dynamic table dependent compressiong scheme.
     private MsgTransformer myTransform = null;
+
     private boolean myIsStandardCBC = false;
 
     // The following fields are for MAC calculation
     // HASH_BLOCK_SIZE is true for MD5 and SHA1, check others
     static private final int HASH_BLOCK_SIZE = 64;
+
     private boolean myIsDoingMac = false;
+
     private boolean myIsDoingHMAC = false;
+
     private byte[] myMACKey;
+
     private MessageDigest mySHA1;
+
     private byte[] myMAC;
+
     private byte[] mySequence;  // Sequence check
 
     // The following fields are for compression
@@ -101,25 +118,26 @@
     private long myTotalTime = 0;
 
     /**
-       Construct a new RecvThread.
+     Construct a new RecvThread.
 
-       @param inputStream stream to read data from.
-       @param receiver a FragileRootHolder to an OutputStream to write data to.
-       @param connection a RawConnection to send problem reports to.
-       @param bufferLength number of bytes to read at one time.  A new
-        buffer of this length is allocated for each read, so it
-        shouldn't be too big.
-      */
+     @param inputStream stream to read data from.
+     @param receiver a FragileRootHolder to an OutputStream to write data to.
+     @param connection a RawConnection to send problem reports to.
+     @param bufferLength number of bytes to read at one time.  A new
+     buffer of this length is allocated for each read, so it
+     shouldn't be too big.
+     */
     public RecvThread(InputStream inputStream,
                       DataPath connection,
                       String remoteAddr,
                       Runner runner) {
         super("RecvThread-" + remoteAddr);
-        myInputStream = inputStream ;
+        myInputStream = inputStream;
         myDataPath = connection;
         myTerminateFlag = false;
         myRunner = runner;
     }
+
     /**
      * Call a method in our VatTPMgr
      *
@@ -129,7 +147,7 @@
     private void callDataPath(DataCommThunk thunk) {
         try {
             myRunner.now(thunk);
-        } catch(Throwable t) {
+        } catch (Throwable t) {
             Trace.comm.errorm("Error while calling " + thunk, t);
             if (t instanceof VirtualMachineError) throw (VirtualMachineError)t;
             if (t instanceof ThreadDeath) throw (ThreadDeath)t;
@@ -154,10 +172,10 @@
 
     /*package*/ void changeProtocol(AuthSecrets protocolParms) {
         if (Trace.comm.verbose && Trace.ON) {
-            Trace.comm.verbosem("ProtocolChange, pp="+protocolParms);
+            Trace.comm.verbosem("ProtocolChange, pp=" + protocolParms);
         }
         Assertion.test(myChangeProtocolIsOk,
-            "Must only be called while caller is processing an input message");
+                       "Must only be called while caller is processing an input message");
         // For calculating the header length
         int headerLengthIndex = HEADER_INVALID;
 
@@ -166,9 +184,9 @@
             myIsDoingMac = false;
             mySequence = null;
             headerLengthIndex = HEADER_INT_LENGTH;
-        // begin daffE -> E
+            // begin daffE -> E
         } else if (StartUpProtocol.PROTO_3DES_SDH_M.equals(
-                   protocolParms.myProtocolSuite)) {
+          protocolParms.myProtocolSuite)) {
             myIsAggragating = true;
             MessageDigest md5 = setSHA1(protocolParms);
             headerLengthIndex = HEADER_VLEN_SHA1;
@@ -177,10 +195,10 @@
               TripleDESKeyConstructor.make(protocolParms.myDHSecret);
             myTransform =
               new Decrypt3DES(raw_3des_key, protocolParms.myIncomingSequence);
-        // end daffE -> E
-        // begin improved E protocol
+            // end daffE -> E
+            // begin improved E protocol
         } else if (StartUpProtocol.PROTO_3DES_SDH_M2.equals(
-                   protocolParms.myProtocolSuite)) {
+          protocolParms.myProtocolSuite)) {
             myIsAggragating = true;
             MessageDigest md5 = setSHA1(protocolParms);
             headerLengthIndex = HEADER_VLEN_HMAC;
@@ -192,9 +210,9 @@
             myTransform.init();
             myIsStandardCBC = true;
             myIsDoingHMAC = true;
-        // end improved E protocol
+            // end improved E protocol
         } else {
-            Assertion.test(false, "Invalid protocol type "+protocolParms);
+            Assertion.test(false, "Invalid protocol type " + protocolParms);
         }
         myIsCompressingMsgLengths = myIsAggragating;
 
@@ -247,7 +265,7 @@
     private void fillArray(byte[] b, int off, int len) throws IOException {
         int offset = off;
         while (offset < off + len) {
-            int thisLen = off+len-offset;
+            int thisLen = off + len - offset;
             thisLen = (thisLen > NOTIFY_EVERY) ? NOTIFY_EVERY : thisLen;
             int l = myInputStream.read(b, offset, thisLen);
             if (l < 0) {
@@ -270,7 +288,7 @@
     }
 
     private void increment(byte[] value) {
-        for (int i=value.length-1; i>=0; i--) {
+        for (int i = value.length - 1; i >= 0; i--) {
             byte v = (value[i] += 1);
             if (0 != v) break;
         }
@@ -288,7 +306,7 @@
     static private boolean isEqual(byte[] a, byte[] b) {
         int len = a.length;
         if (len != b.length) return false;
-        for (int i=0; i<len; i++) {
+        for (int i = 0; i < len; i++) {
             if (a[i] != b[i]) return false;
         }
         return true;
@@ -303,7 +321,7 @@
      */
     static private void xor(byte[] a, byte[] b) {
         int len = Math.min(a.length, b.length);
-        for (int i=0; i<len; i++) {
+        for (int i = 0; i < len; i++) {
             a[i] ^= b[i];
         }
     }
@@ -316,7 +334,7 @@
      * @param v is the byte to be replicated.
      */
     static private void replicate(byte[] a, byte v) {
-        for (int i=0; i<a.length; i++) {
+        for (int i = 0; i < a.length; i++) {
             a[i] = v;
         }
     }
@@ -338,13 +356,14 @@
      */
     private byte[] md5Hash(int pad, byte[] data, MessageDigest md5) {
         byte[] mdConst = new byte[16];
-        for (int i=0; i<mdConst.length; i++) mdConst[i] = (byte)pad;
+        for (int i = 0; i < mdConst.length; i++) mdConst[i] = (byte)pad;
         md5.reset();                    //Initialize a new hash
         md5.update(mdConst);
         return md5.digest(data);
     }
+
     /**
-       Process input data.
+     Process input data.
      */
     private void readAndProcessMessage() throws IOException {
         long authTime = 0;
@@ -368,31 +387,35 @@
         }
         if (Trace.comm.verbose && Trace.ON) {
             Trace.comm.verbosem("Header: "
-                + HexStringUtils.byteArrayToReadableHexString(myHeader));
+                                + HexStringUtils.byteArrayToReadableHexString(myHeader));
         }
 
         int length;
         int nextItemOffset;    // Offset to the next item in the header
         if (myIsCompressingMsgLengths) {
             int l1 = myHeader[0];    // First byte of the length
-            if (0 == (l1 & 0x80)) {           // len < 128
+            if (0 == (l1 & 0x80)) {
+                // len < 128
                 length = l1;
                 nextItemOffset = 1;
             } else {
-                if (0x80 == (l1 & 0xc0)) { // len < 16,384
+                if (0x80 == (l1 & 0xc0)) {
+                    // len < 16,384
                     length = ((l1 & 0x3f) << 8) |
-                             ((myHeader[1] & 0xff));
+                      ((myHeader[1] & 0xff));
                     nextItemOffset = 2;
-                } else if (0xc0 == (l1 & 0xe0)) { // len < 2,097,152
-                    length = ((l1 & 0x1f)          << 16) |
-                             ((myHeader[1] & 0xff) <<  8) |
-                             ((myHeader[2] & 0xff))       ;
+                } else if (0xc0 == (l1 & 0xe0)) {
+                    // len < 2,097,152
+                    length = ((l1 & 0x1f) << 16) |
+                      ((myHeader[1] & 0xff) << 8) |
+                      ((myHeader[2] & 0xff));
                     nextItemOffset = 3;
-                } else if (0xe0 == (l1 & 0xf0)) { // len < 2**28
-                    length = ((l1 & 0x0f)          << 24) |
-                             ((myHeader[1] & 0xff) << 16) |
-                             ((myHeader[2] & 0xff) <<  8) |
-                             ((myHeader[3] & 0xff))       ;
+                } else if (0xe0 == (l1 & 0xf0)) {
+                    // len < 2**28
+                    length = ((l1 & 0x0f) << 24) |
+                      ((myHeader[1] & 0xff) << 16) |
+                      ((myHeader[2] & 0xff) << 8) |
+                      ((myHeader[3] & 0xff));
                     nextItemOffset = 4;
                 } else {
                     throw new IOException
@@ -400,11 +423,12 @@
                        HexStringUtils.byteArrayToReadableHexString(myHeader));
                 }
             }
-        } else {            // Not compressing
+        } else {
+            // Not compressing
             length = ((myHeader[0] & 0xff) << 24) |
-                     ((myHeader[1] & 0xff) << 16) |
-                     ((myHeader[2] & 0xff) <<  8) |
-                      (myHeader[3] & 0xff)        ;
+              ((myHeader[1] & 0xff) << 16) |
+              ((myHeader[2] & 0xff) << 8) |
+              (myHeader[3] & 0xff);
             nextItemOffset = 4;
         }
         if (Trace.comm.verbose && Trace.ON) {
@@ -416,7 +440,7 @@
         }
         if (myIsDoingMac) {
             System.arraycopy(myHeader, nextItemOffset,
-                         myMAC, 0, 20); // Save MAC
+                             myMAC, 0, 20); // Save MAC
             nextItemOffset += 20;
         }
         if (null != mySequence) {
@@ -428,11 +452,11 @@
             if (!isEqual(mySequence, theirSequence)) {
                 if (Trace.comm.error) {
                     traceErrorMessage(theirSequence,
-                            0, theirSequence.length,
-                            "sequence error, [remote sequence number]:");
+                                      0, theirSequence.length,
+                                      "sequence error, [remote sequence number]:");
                     traceErrorMessage(mySequence,
-                            0, mySequence.length,
-                            "sequence error, [local sequence number]:");
+                                      0, mySequence.length,
+                                      "sequence error, [local sequence number]:");
                 }
                 throw new IOException("incoming packet sequence error");
             }
@@ -463,7 +487,7 @@
         }
         if (Trace.comm.verbose && Trace.ON) {
             Trace.comm.verbosem("Initial message: "
-                + HexStringUtils.byteArrayToReadableHexString(message));
+                                + HexStringUtils.byteArrayToReadableHexString(message));
         }
 
         // Read rest of message into the buffer allocated for it
@@ -475,8 +499,8 @@
             if (Trace.comm.timing && Trace.ON) {
                 startTime = MicroTime.queryTimer();
             }
-            myTransform.transform(message, (myHeader.length-nextItemOffset),
-                            message.length - (myHeader.length-nextItemOffset));
+            myTransform.transform(message, (myHeader.length - nextItemOffset),
+                                  message.length - (myHeader.length - nextItemOffset));
             if (Trace.comm.timing && Trace.ON) {
                 authTime += MicroTime.queryTimer() - startTime;
             }
@@ -484,7 +508,7 @@
 
         if (Trace.comm.verbose && Trace.ON) {
             Trace.comm.verbosem("Full message: "
-                + HexStringUtils.byteArrayToReadableHexString(message));
+                                + HexStringUtils.byteArrayToReadableHexString(message));
         }
 
         myMessagesToPass.removeAllElements();
@@ -494,31 +518,34 @@
             while (true) {
                 length = 0;
                 int input = bais.read();
-            if (input <= 0) break;  // -1 for eof on bais, 0 if only msg shorter than 3
+                if (input <= 0) break;  // -1 for eof on bais, 0 if only msg shorter than 3
                 int count;
                 if (myIsCompressingMsgLengths) {
                     if (0 == (input & 0x80)) {
                         length = input;
                         count = 0;
-                    } else if (0x80 == (input & 0xc0)) { // len < 16,384
+                    } else if (0x80 == (input & 0xc0)) {
+                        // len < 16,384
                         length = input & 0x3f;
                         count = 1;
-                    } else if (0xc0 == (input & 0xe0)) { // len < 2,097,152
+                    } else if (0xc0 == (input & 0xe0)) {
+                        // len < 2,097,152
                         length = input & 0x1f;
                         count = 2;
-                    } else if (0xe0 == (input & 0xf0)) { // len < 2**28
+                    } else if (0xe0 == (input & 0xf0)) {
+                        // len < 2**28
                         length = input & 0x0f;
                         count = 3;
                     } else {
                         throw new IOException(
-                                "Invalid compressed length code"
-                                + HexStringUtils.byteArrayToReadableHexString(message));
+                          "Invalid compressed length code"
+                          + HexStringUtils.byteArrayToReadableHexString(message));
                     }
                 } else {
                     count = 3;
                 }
-                for (int i=0; i<count; i++) {
-                    length <<=8;
+                for (int i = 0; i < count; i++) {
+                    length <<= 8;
                     input = bais.read();
                     length |= input & 0xff;
                 }
@@ -531,16 +558,16 @@
                 int offset = 0;
                 while (offset < emsg.length) {
                     int read = bais.read(emsg, offset,
-                                               emsg.length-offset);
+                                         emsg.length - offset);
                     if (-1 == read) break;
                     offset += read;
                 }
                 if (offset != length) {
                     throw new IOException(
-                        "incoming packet not aggragated properly,"
-                         +" expectedLength="+length+" foundLength="+offset
-                         + HexStringUtils.byteArrayToReadableHexString(
-                            message));
+                      "incoming packet not aggragated properly,"
+                      + " expectedLength=" + length + " foundLength=" + offset
+                      + HexStringUtils.byteArrayToReadableHexString(
+                        message));
                 }
                 myMessagesToPass.addElement(emsg);
             }
@@ -558,27 +585,27 @@
             if (!MessageDigest.isEqual(digest, myMAC)) {
                 if (Trace.comm.error) {
                     traceErrorMessage(myMAC,
-                            0, myMAC.length,
-                            "checksum mismatch, [remote checksum]:");
+                                      0, myMAC.length,
+                                      "checksum mismatch, [remote checksum]:");
                     traceErrorMessage(digest,
-                            0, digest.length,
-                            "checksum mismatch, [local checksum]:");
+                                      0, digest.length,
+                                      "checksum mismatch, [local checksum]:");
                     Enumeration itr = myMessagesToPass.elements();
                     while (itr.hasMoreElements()) {
                         byte[] msg = (byte[])(itr.nextElement());
                         int len = msg.length;
-                        byte[] m = new byte[len+4];
+                        byte[] m = new byte[len + 4];
                         m[0] = (byte)((len >> 24) & 0xff);  // The message length
                         m[1] = (byte)((len >> 16) & 0xff);
-                        m[2] = (byte)((len >>  8) & 0xff);
-                        m[3] = (byte)((len      ) & 0xff);
-                        System.arraycopy(msg,0, m,4, len);
+                        m[2] = (byte)((len >> 8) & 0xff);
+                        m[3] = (byte)((len) & 0xff);
+                        System.arraycopy(msg, 0, m, 4, len);
                         traceErrorMessage(m, 0, m.length,
-                                "checksum mismatch, [data         ]:");
+                                          "checksum mismatch, [data         ]:");
                     }
                 }
                 throw new IOException(
-                            "incoming packet checksum mismatch");
+                  "incoming packet checksum mismatch");
             }
             if (Trace.comm.timing && Trace.ON) macTime += MicroTime.queryTimer() - startTime;
         }
@@ -586,17 +613,18 @@
         //myDataPath.updateReceivedCounts(msgLengths, compressedLength);
 
         Enumeration itr;
-        if (Trace.comm.timing && Trace.ON) {     // Generate event record message
+        if (Trace.comm.timing && Trace.ON) {
+            // Generate event record message
             itr = myMessagesToPass.elements();
             String logMsg = "Processed message length(s)";
             while (itr.hasMoreElements()) {
                 byte[] msg = (byte[])(itr.nextElement());
-                logMsg += " "+msg.length;
+                logMsg += " " + msg.length;
             }
-            if (0 != authTime) logMsg+= " AuthTime="+authTime;
-            if (0 != macTime) logMsg+= " MACTime="+macTime;
+            if (0 != authTime) logMsg += " AuthTime=" + authTime;
+            if (0 != macTime) logMsg += " MACTime=" + macTime;
             myTotalTime += authTime + macTime;
-            if (0 != myTotalTime) logMsg += " TotalTime="+myTotalTime;
+            if (0 != myTotalTime) logMsg += " TotalTime=" + myTotalTime;
             Trace.comm.timingm(logMsg);
         }
 
@@ -605,7 +633,7 @@
             byte[] msg = (byte[])(itr.nextElement());
             if (Trace.comm.debug && Trace.ON) {
                 traceDebugMessage(msg, 0, msg.length,
-                             "incoming packet data");
+                                  "incoming packet data");
             }
             myChangeProtocolIsOk = true;
 
@@ -619,6 +647,7 @@
         }
         myMessagesToPass.removeAllElements(); // Clean up for garbage collecter
     }
+
     /**
      * The actual connection receive thread -- the asynchronous part.
      */
@@ -658,34 +687,34 @@
             if (t instanceof VirtualMachineError) throw (VirtualMachineError)t;
             if (t instanceof ThreadDeath) throw (ThreadDeath)t;
             if (t instanceof LinkageError) throw (LinkageError)t;
-        }
-        finally {
+        } finally {
             if (Trace.comm.debug) {
                 Trace.comm.debugm("terminated");
             }
             myDataPath = null;
         }
     }
+
     private MessageDigest setSHA1(AuthSecrets macParms) {
         try {
             mySHA1 = MessageDigest.getInstance("SHA");
-        } catch(NoSuchAlgorithmException e) {
+        } catch (NoSuchAlgorithmException e) {
             Trace.comm.errorm(" Unable to build SHA", e);
             Trace.comm.notifyFatal();
         }
         MessageDigest md5 = null;
         try {
             md5 = MessageDigest.getInstance("MD5");
-        } catch(NoSuchAlgorithmException e) {
+        } catch (NoSuchAlgorithmException e) {
             Trace.comm.errorm("Unable to build MD5", e);
             Trace.comm.notifyFatal();
         }
         // Calculate the MAC key
         byte[] macKey = new byte[64];
-        System.arraycopy(md5Hash(0x11,macParms.myDHSecret,md5), 0, macKey, 0, 16);
-        System.arraycopy(md5Hash(0x22,macParms.myDHSecret,md5), 0, macKey, 16, 16);
-        System.arraycopy(md5Hash(0x33,macParms.myDHSecret,md5), 0, macKey, 32, 16);
-        System.arraycopy(md5Hash(0x44,macParms.myDHSecret,md5), 0, macKey, 48, 16);
+        System.arraycopy(md5Hash(0x11, macParms.myDHSecret, md5), 0, macKey, 0, 16);
+        System.arraycopy(md5Hash(0x22, macParms.myDHSecret, md5), 0, macKey, 16, 16);
+        System.arraycopy(md5Hash(0x33, macParms.myDHSecret, md5), 0, macKey, 32, 16);
+        System.arraycopy(md5Hash(0x44, macParms.myDHSecret, md5), 0, macKey, 48, 16);
         myMACKey = macParms.myMacKey = macKey;
 
         //Set up to do the MAC calculation
@@ -700,11 +729,13 @@
     /*package*/ void shutdown() {
         myTerminateFlag = true;
     }
-    private void traceDebugMessage (byte msg[], int off, int len, String note) {
+
+    private void traceDebugMessage(byte msg[], int off, int len, String note) {
         String msgString = HexStringUtils.byteArrayToReadableHexString(msg, off, len);
         Trace.comm.debugm(note + " (length " + len + ") " + msgString);
     }
-    private void traceErrorMessage (byte msg[], int off, int len, String note) {
+
+    private void traceErrorMessage(byte msg[], int off, int len, String note) {
         String msgString = HexStringUtils.byteArrayToReadableHexString(msg, off, len);
         Trace.comm.errorm(note + " (length " + len + ") " + msgString);
     }



1.6       +182 -150  e/src/jsrc/net/vattp/data/SendThread.java

Index: SendThread.java
===================================================================
RCS file: /cvs/e/src/jsrc/net/vattp/data/SendThread.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- SendThread.java	2001/09/06 09:55:39	1.5
+++ SendThread.java	2001/11/10 19:40:37	1.6
@@ -22,6 +22,7 @@
 
 Contributor(s): ______________________________________.
 */
+
 import net.vattp.security.MicroTime;
 import org.erights.e.develop.assertion.Assertion;
 import org.erights.e.develop.exception.NestedIOException;
@@ -81,17 +82,24 @@
  *  mode specified when authentication is turned on.
  * @author Bill Frantz
  */
-/*package*/ class SendThread extends Thread {
+/*package*/
+class SendThread extends Thread {
 
     /** Notify DataPath every NOTIFY_EVERY bytes of send progress */
     static private final int NOTIFY_EVERY = 10000;
 
     private OutputStream myOutputStream;
+
     private Socket mySocket;
+
     private NetAddr myLocalAddr;
+
     private String myRemoteAddr;
+
     private DataPath myDataPath;
+
     private SynchQueue myReader;
+
     private Runner myRunner;    // For synchronizing into-vat calls
 
     /** A Hashtable of the InetAddresses tried which failed due to host
@@ -102,26 +110,38 @@
 
     // The following fields are for aggragating messages
     static private final int MAX_AGGRAGATION = 1024;
+
     private boolean myIsAggragating = false;
+
     private int myAggragateLength;
+
     private byte[] myAggragation = new byte[MAX_AGGRAGATION];
+
     private int myAggragationCount = 0; // For event messages
+
     private Object myNotifications = null; // null, StreamMessage, or Vector
 
     // The following field is for message transformation.  It is skeleton
     // support for future HTTP tunnelling.   It could also be used to
     // implement a dynamic table dependent compressiong scheme.
     private MsgTransformer myTransform = null;
+
     private boolean myIsStandardCBC = false;
 
     // The following fields are for MAC calculation
     // HASH_BLOCK_SIZE is true for MD5 and SHA1, check others
     static private final int HASH_BLOCK_SIZE = 64;
+
     private boolean myIsDoingMac = false;
+
     private boolean myIsDoingHMAC = false;
+
     private byte[] myMACKey;
+
     private MessageDigest mySHA1;
+
     private int myMacLen = 0;
+
     private byte[] mySequence;  // Sequence check
 
     private boolean myIsCompressingMsgLengths = false;
@@ -188,37 +208,37 @@
      */
     private void addElement(Object elem) throws IOException {
         if (elem instanceof byte[]) {
-            byte[] b = (byte[]) elem;
+            byte[] b = (byte[])elem;
             if (Trace.comm.verbose && Trace.ON) {
                 Trace.comm.verbosem("to=" + myRemoteAddr
-                            + " addElement="+b.length);
+                                    + " addElement=" + b.length);
             }
             if (!myIsAggragating
-                    || myAggragateLength + b.length+4 > myAggragation.length) {
+              || myAggragateLength + b.length + 4 > myAggragation.length) {
                 flushElements();
-                if (b.length+4 > myAggragation.length) {
+                if (b.length + 4 > myAggragation.length) {
                     sendBytesWithLength(b);
                     return;
                 }
             }
             int len = b.length;
             myAggragateLength = msgLength(len, myAggragation,
-                                    myAggragateLength, myIsCompressingMsgLengths);
+                                          myAggragateLength, myIsCompressingMsgLengths);
             System.arraycopy(b, 0, myAggragation,
                              myAggragateLength, len);
             myAggragateLength += len;
             myAggragationCount++;
         } else if (elem instanceof StreamMessage) {
-            StreamMessage sm = (StreamMessage) elem;
+            StreamMessage sm = (StreamMessage)elem;
             byte[] b = sm.myMessage;
             if (Trace.comm.verbose && Trace.ON) {
                 Trace.comm.verbosem("to=" + myRemoteAddr
-                            + " addElement="+b.length);
+                                    + " addElement=" + b.length);
             }
             if (!myIsAggragating
-                    || myAggragateLength + b.length+4 > myAggragation.length) {
+              || myAggragateLength + b.length + 4 > myAggragation.length) {
                 flushElements();
-                if (b.length+4 > myAggragation.length) {
+                if (b.length + 4 > myAggragation.length) {
                     sendBytesWithLength(b);
                     sm.myPlaceToRun.enqueue(sm.myNotification);
                     return;
@@ -226,7 +246,7 @@
             }
             int len = b.length;
             myAggragateLength = msgLength(len, myAggragation,
-                                    myAggragateLength, myIsCompressingMsgLengths);
+                                          myAggragateLength, myIsCompressingMsgLengths);
             System.arraycopy(b, 0, myAggragation,
                              myAggragateLength, len);
             myAggragateLength += len;
@@ -244,31 +264,31 @@
             }
         } else {
             flushElements();    // Write previous stuff under old rules
-            AuthSecrets c = (AuthSecrets) elem;
+            AuthSecrets c = (AuthSecrets)elem;
             if (Trace.comm.debug && Trace.ON) {
                 Trace.comm.debugm("to=" + myRemoteAddr
-                                + " doing ProtocolChange, protocolSuite="
-                                + c.myProtocolSuite);
+                                  + " doing ProtocolChange, protocolSuite="
+                                  + c.myProtocolSuite);
             }
             if (StartUpProtocol.PROTO_NONE.equals(c.myProtocolSuite)) {
                 myIsAggragating = false;
                 myIsDoingMac = false;
-            // begin daffE -> E
+                // begin daffE -> E
             } else if (StartUpProtocol.PROTO_3DES_SDH_M
-                       .equals(c.myProtocolSuite)) {
+              .equals(c.myProtocolSuite)) {
                 myIsAggragating = true;
                 myIsDoingMac = true;
                 myMACKey = c.myMacKey;
                 myMacLen = 20;
                 byte[] raw_3des_key = TripleDESKeyConstructor.make(c.myDHSecret);
                 myTransform =
-                    new Encrypt3DES(raw_3des_key, c.myOutgoingSequence, false);
+                  new Encrypt3DES(raw_3des_key, c.myOutgoingSequence, false);
                 mySequence = null;
                 setSHA1();
-            // end daffE -> E
-            // Begin improved E protocol
+                // end daffE -> E
+                // Begin improved E protocol
             } else if (StartUpProtocol.PROTO_3DES_SDH_M2
-                       .equals(c.myProtocolSuite)) {
+              .equals(c.myProtocolSuite)) {
                 myIsAggragating = true;
                 myIsDoingMac = true;
                 myMACKey = c.myMacKey;
@@ -280,14 +300,15 @@
                 myIsStandardCBC = true;
                 mySequence = new byte[4]; // Assume initialized to zero
                 setSHA1();
-            // end improved E protocol
-            }  else {
+                // end improved E protocol
+            } else {
                 throw new IOException(
-                        "Invalid protocol suite type "+c.myProtocolSuite);
+                  "Invalid protocol suite type " + c.myProtocolSuite);
             }
             myIsCompressingMsgLengths = myIsAggragating;
         }
     }
+
     /**
      * Call a method in our DataPath
      *
@@ -297,20 +318,21 @@
     private void callDataPath(DataCommThunk thunk) {
         try {
             myRunner.now(thunk);
-        } catch(Throwable t) {
+        } catch (Throwable t) {
             Trace.comm.errorm("to=" + myRemoteAddr + " Error while calling "
-                        + thunk, t);
+                              + thunk, t);
             if (t instanceof VirtualMachineError) throw (VirtualMachineError)t;
             if (t instanceof ThreadDeath) throw (ThreadDeath)t;
             if (t instanceof LinkageError) throw (LinkageError)t;
         }
     }
+
     private byte[] computeMAC(byte[] b, int off, int len,
                               /*NilOK*/byte[] lenField) {
         if (Trace.comm.verbose && Trace.ON) {
             Trace.comm.verbosem("to=" + myRemoteAddr
-                    + " Calculating MAC on (length "+len+"):"
-                    + HexStringUtils.byteArrayToReadableHexString(b, off, len));
+                                + " Calculating MAC on (length " + len + "):"
+                                + HexStringUtils.byteArrayToReadableHexString(b, off, len));
         }
         mySHA1.reset();                 //Initialize a new hash
         if (myIsDoingHMAC) {
@@ -345,14 +367,15 @@
             return mySHA1.digest(myMACKey);     // The MAC key again
         }
     }
+
     private void flushElements() throws IOException {
         if (Trace.comm.verbose && Trace.ON) {
             Trace.comm.verbosem("to=" + myRemoteAddr + " flushElements="
-                        + myAggragateLength);
+                                + myAggragateLength);
         }
         if (0 != myAggragateLength) {
             sendBytes(myAggragation, 0, myAggragateLength, null,
-                    myAggragateLength-(4*myAggragationCount));
+                      myAggragateLength - (4 * myAggragationCount));
             myAggragateLength = 0;
             myAggragationCount = 0;
         }
@@ -362,13 +385,14 @@
             sm.myPlaceToRun.enqueue(sm.myNotification);
         } else {
             Vector notifies = (Vector)myNotifications;
-            for (int i=0; i<notifies.size(); i++) {
+            for (int i = 0; i < notifies.size(); i++) {
                 StreamMessage sm = (StreamMessage)notifies.elementAt(i);
                 sm.myPlaceToRun.enqueue(sm.myNotification);
             }
         }
         myNotifications = null;
     }
+
     /**
      * Get the current Sequence for authentication
      */
@@ -379,93 +403,94 @@
             return mySequence;
         }
     }
+
     private void increment(byte[] value) {
-        for (int i=value.length-1; i>=0; i--) {
+        for (int i = value.length - 1; i >= 0; i--) {
             byte v = (value[i] += 1);
             if (0 != v) break;
         }
     }
 
-  /**
-   * xor - Exclusive OR two byte arrays.
-   *
-   * @param a is the input and output array.
-   * @param b is the array which is XORed with a.
-   */
-  static private void xor(byte[] a, byte[] b) {
-    int len = Math.min(a.length, b.length);
-    for (int i=0; i<len; i++) {
-      a[i] ^= b[i];
-    }
-  }
-
-
-  /**
-   * replicate - Copy a single byte to all elements of a byte array.
-   *
-   * @param a is the byte array.
-   * @param v is the byte to be replicated.
-   */
-  static private void replicate(byte[] a, byte v) {
-    for (int i=0; i<a.length; i++) {
-      a[i] = v;
-    }
-  }
-
-  /**
-   * Calculate the MD5 hash of some data with a specific padding.
-   * <p>
-   * The padding allows different values to be obtained from the same data
-   * by varing the padding value.  We use it to get the different
-   * authentication values from the same Diffie Hellman shared secret.
-   *
-   * @param pad The int (treated as a byte) to be used to pad the MD5 calculation.
-   * @param data The data to be hashed.
-   * @param md5 The message digest object to be used.
-   *
-   * @return A byte array representing the hash.
-   */
+    /**
+     * xor - Exclusive OR two byte arrays.
+     *
+     * @param a is the input and output array.
+     * @param b is the array which is XORed with a.
+     */
+    static private void xor(byte[] a, byte[] b) {
+        int len = Math.min(a.length, b.length);
+        for (int i = 0; i < len; i++) {
+            a[i] ^= b[i];
+        }
+    }
+
+
+    /**
+     * replicate - Copy a single byte to all elements of a byte array.
+     *
+     * @param a is the byte array.
+     * @param v is the byte to be replicated.
+     */
+    static private void replicate(byte[] a, byte v) {
+        for (int i = 0; i < a.length; i++) {
+            a[i] = v;
+        }
+    }
 
+    /**
+     * Calculate the MD5 hash of some data with a specific padding.
+     * <p>
+     * The padding allows different values to be obtained from the same data
+     * by varing the padding value.  We use it to get the different
+     * authentication values from the same Diffie Hellman shared secret.
+     *
+     * @param pad The int (treated as a byte) to be used to pad the MD5 calculation.
+     * @param data The data to be hashed.
+     * @param md5 The message digest object to be used.
+     *
+     * @return A byte array representing the hash.
+     */
+
     private byte[] md5Hash(int pad, byte[] data, MessageDigest md5) {
         byte[] mdConst = new byte[16];
-        for (int i=0; i<mdConst.length; i++) mdConst[i] = (byte)pad;
+        for (int i = 0; i < mdConst.length; i++) mdConst[i] = (byte)pad;
         md5.reset();                    //Initialize a new hash
         md5.update(mdConst);
         return md5.digest(data);
     }
 
-  /**
-   * Calculate the message length field for a message.
-   *
-   * @param len is the length of the message to have it's length encoded.
-   * @param buf is the output buffer for the encoded length.
-   * @param off is the offset in the buffer for where to place the encoded length.
-   * @param comprssed is true if compressed lengths are to be used.
-   *
-   * @return is the offset of the byte after the end of the length.
-   */
+    /**
+     * Calculate the message length field for a message.
+     *
+     * @param len is the length of the message to have it's length encoded.
+     * @param buf is the output buffer for the encoded length.
+     * @param off is the offset in the buffer for where to place the encoded length.
+     * @param comprssed is true if compressed lengths are to be used.
+     *
+     * @return is the offset of the byte after the end of the length.
+     */
     static /*package*/ int msgLength(int len, byte[] buf,
                                      int off, boolean compressed)
-            throws IOException {
+      throws IOException {
         if (compressed) {
             if (len < 128) {
-                buf[off++] = (byte) (len & 0x7f);
+                buf[off++] = (byte)(len & 0x7f);
             } else if (len < 16384) {
                 buf[off++] = (byte)(((len >> 8) & 0x3f) | 0x80);
-                buf[off++] = (byte) (len & 0xff);
+                buf[off++] = (byte)(len & 0xff);
             } else if (len < 2097152) {
                 buf[off++] = (byte)(((len >> 16) & 0x1f) | 0xc0);
-                buf[off++] = (byte) ((len >>  8) & 0xff);
-                buf[off++] = (byte) (len         & 0xff);
+                buf[off++] = (byte)((len >> 8) & 0xff);
+                buf[off++] = (byte)(len & 0xff);
             } else {
                 throw new IOException("Packet too large: " + len
-                        + " >= 2,097,152");
+                                      + " >= 2,097,152");
             }
         } else {
-            buf[off++] = (byte)( (len>>24) & 0xff);
-            buf[off++] = (byte)( (len>>16) & 0xff);
-            buf[off++] = (byte)( (len>> 8) & 0xff);
-            buf[off++] = (byte)( (len    ) & 0xff);
+            buf[off++] = (byte)((len >> 24) & 0xff);
+            buf[off++] = (byte)((len >> 16) & 0xff);
+            buf[off++] = (byte)((len >> 8) & 0xff);
+            buf[off++] = (byte)((len) & 0xff);
         }
         return off;
     }
@@ -476,6 +501,7 @@
     private void noticeProblem(Exception e) {
         callDataPath(new DataCommThunk(myDataPath, e));
     }
+
     /**
      * Body of the thread.  Responsible for dequeueing messages and
      * writing them.  Also for dequeueing parameter change orders (e.g.
@@ -483,14 +509,15 @@
      * Calls DataPath.shutdown() before exiting.
      * Will exit if a null is dequeued.
      */
-     public void run() { // First build the connection.
+    public void run() {
+        // First build the connection.
 
         try {
             NetAddr remoteNetAddr;
             if (null == mySocket) {
                 if (Trace.comm.debug && Trace.ON) {
                     Trace.comm.debugm("Attempting outgoing connection to "
-                                                + myRemoteAddr);
+                                      + myRemoteAddr);
                 }
                 long startTime = 0;
                 if (Trace.comm.timing && Trace.ON) {
@@ -500,7 +527,7 @@
                 //it's safe to not check optInetAddress() for null, since
                 //remoteNetAddr must explicitly have one
                 InetAddress remoteInetAddress
-                        = remoteNetAddr.optInetAddress();
+                  = remoteNetAddr.optInetAddress();
                 if (null != myAddressesTried.get(remoteInetAddress)) {
                     throw new NoRouteToHostException("Already failed once");
                 }
@@ -509,15 +536,15 @@
                                           remoteNetAddr.getPort());
                     if (Trace.comm.timing && Trace.ON) {
                         Trace.comm.timingm("Socket build time="
-                            + (MicroTime.queryTimer() - startTime)
-                            + " microseconds");
+                                           + (MicroTime.queryTimer() - startTime)
+                                           + " microseconds");
                     }
-                } catch(NoRouteToHostException he) {
+                } catch (NoRouteToHostException he) {
                     myAddressesTried.put(remoteInetAddress, remoteInetAddress);
                     throw he;
-                } catch(BindException be) {
+                } catch (BindException be) {
                     throw new NestedIOException("BindException binding to "
-                            + remoteNetAddr, be);
+                                                + remoteNetAddr, be);
                 }
             } else {
                 remoteNetAddr = new NetAddr(mySocket.getInetAddress(),
@@ -528,11 +555,11 @@
 
             if (Trace.comm.debug && Trace.ON) {
                 Trace.comm.debugm("Acquired outgoing connection to "
-                            + myRemoteAddr + " from " + myLocalAddr);
+                                  + myRemoteAddr + " from " + myLocalAddr);
             }
             try {
                 mySocket.setTcpNoDelay(true);   // Set for send immediately
-            } catch(SocketException e) {
+            } catch (SocketException e) {
                 if (Trace.comm.event && Trace.ON) {
                     Trace.comm.eventm("Unable to setTcpNoDelay", e);
                 }
@@ -544,10 +571,10 @@
                                                  myRemoteAddr,
                                                  myRunner);
             callDataPath(
-                    new DataCommThunk(myDataPath,
-                                      receiver,
-                                      remoteNetAddr,
-                                      myLocalAddr));
+              new DataCommThunk(myDataPath,
+                                receiver,
+                                remoteNetAddr,
+                                myLocalAddr));
 
         } catch (Exception e) {
             if (e instanceof IOException) {
@@ -572,7 +599,7 @@
                     Trace.comm.verbosem("to=" + myRemoteAddr + " getting chunk");
                 }
                 chunk = myReader.dequeue(); // Block here
-                if ( !(chunk instanceof Integer) ) {
+                if (!(chunk instanceof Integer)) {
                     addElement(chunk);
                     while (myReader.hasMoreElements()) {
                         chunk = myReader.nextElement(); // Shouldn't block
@@ -592,7 +619,7 @@
 
             if (Trace.comm.debug && Trace.ON) {
                 Trace.comm.debugm("to=" + myRemoteAddr
-                            + " I've been asked to shutdown");
+                                  + " I've been asked to shutdown");
             }
         } catch (Exception e) {
             if (Trace.comm.debug && Trace.ON) {
@@ -603,7 +630,7 @@
         }
         try {
             mySocket.close();   // Close the socket
-        } catch(IOException e) {
+        } catch (IOException e) {
             Trace.comm.errorm("to=" + myRemoteAddr + " Exception closing socket", e);
             if (null == shutDownReason) shutDownReason = e;
         }
@@ -611,14 +638,16 @@
             Trace.comm.debugm("to=" + myRemoteAddr + " terminated");
         }
         //Notify the DataPath that the connection has shut down
-        if (null == shutDownReason) shutDownReason
-                = new ConnectionShutDownException("Normal Shutdown");
+        if (null == shutDownReason)
+            shutDownReason
+              = new ConnectionShutDownException("Normal Shutdown");
         callDataPath(new DataCommThunk(myDataPath, getSequence(), shutDownReason));
         myDataPath = null;  // Help GC keep our secrets
         myTransform = null;
         myMACKey = null;
         mySHA1 = null;
     }
+
     /**
      * Perform compression, authentication, mac calculation, and send the message
      *
@@ -632,7 +661,7 @@
                            /*NilOK*/byte[] lenField, int rawLength) throws IOException {
 
         if (Trace.comm.verbose && Trace.ON) {
-            Trace.comm.verbosem("to=" + myRemoteAddr + " sendBytes="+len);
+            Trace.comm.verbosem("to=" + myRemoteAddr + " sendBytes=" + len);
         }
         if (!myIsCompressingMsgLengths) {
             int lineLen = 0;
@@ -644,7 +673,7 @@
             }
             if (Trace.comm.event && Trace.ON) {
                 Trace.comm.eventm("to=" + myRemoteAddr
-                            + " Sending message len=" + len);
+                                  + " Sending message len=" + len);
             }
             writeAndRecordProgress(b, off, len);
             callDataPath(new DataCommThunk(myDataPath,
@@ -659,9 +688,9 @@
 
         if (Trace.comm.timing && Trace.ON) startTime = MicroTime.queryTimer();
         ByteArrayOutputStream baos = new ByteArrayOutputStream();
-        baos.write(new byte[myMacLen+4]); // Write space for length + MAC
+        baos.write(new byte[myMacLen + 4]); // Write space for length + MAC
         if (null != mySequence) {
-        	baos.write(mySequence);   // Write separate message sequence number
+            baos.write(mySequence);   // Write separate message sequence number
         }
         if (null != lenField) {
             baos.write(lenField);
@@ -680,12 +709,12 @@
             offset = 1;
         } else {
             throw new IOException("Packet too large: " + commLength
-                    + " >= 2,097,152");
+                                  + " >= 2,097,152");
         }
         // If not a multiple of 64 bits (8 bytes), pad to 8 bytes
-        if ( (myIsCompressingMsgLengths || null != myTransform)
-                && 0 != ((baos.size()-offset) & 7)) {
-            byte[] fill = new byte[8 - ((baos.size()-offset)&7)];
+        if ((myIsCompressingMsgLengths || null != myTransform)
+          && 0 != ((baos.size() - offset) & 7)) {
+            byte[] fill = new byte[8 - ((baos.size() - offset) & 7)];
             baos.write(fill);     // Pad to multiple of 8 bytes
         }
         byte[] data = baos.toByteArray();
@@ -695,7 +724,7 @@
             byte[] mac = computeMAC(b, off, len, lenField);
             if (Trace.comm.verbose && Trace.ON) {
                 Trace.comm.verbosem("to=" + myRemoteAddr + " MAC is "
-                    + HexStringUtils.byteArrayToReadableHexString(mac));
+                                    + HexStringUtils.byteArrayToReadableHexString(mac));
             }
             System.arraycopy(mac, 0, data, 4, myMacLen);
             Assertion.test(mac.length == myMacLen, "MAC length error");
@@ -705,56 +734,58 @@
         }
 
         switch (offset) {
-         case 1:
-            data[1] = (byte)(((commLength >> 16) & 0x1f) | 0xc0);
-            data[2] = (byte) ((commLength >>  8) & 0xff);
-            data[3] = (byte) (commLength         & 0xff);
-            break;
-         case 2:
-            data[2] = (byte)(((commLength >> 8) & 0x3f) | 0x80);
-            data[3] = (byte) (commLength & 0xff);
-            break;
-         case 3:
-            data[3] = (byte) (commLength & 0x7f);
-            break;
-         default: Assertion.fail("Case out of range, offset="+offset);
+            case 1:
+                data[1] = (byte)(((commLength >> 16) & 0x1f) | 0xc0);
+                data[2] = (byte)((commLength >> 8) & 0xff);
+                data[3] = (byte)(commLength & 0xff);
+                break;
+            case 2:
+                data[2] = (byte)(((commLength >> 8) & 0x3f) | 0x80);
+                data[3] = (byte)(commLength & 0xff);
+                break;
+            case 3:
+                data[3] = (byte)(commLength & 0x7f);
+                break;
+            default:
+                Assertion.fail("Case out of range, offset=" + offset);
         }
 
         if (null != myTransform) {
             if (Trace.comm.timing && Trace.ON) startTime = MicroTime.queryTimer();
             if (Trace.comm.verbose && Trace.ON) {
                 Trace.comm.verbosem("to=" + myRemoteAddr + " authenticating "
-                        + (data.length-offset) + " bytes: "
-                        + HexStringUtils.byteArrayToReadableHexString(data,
-                                        offset, data.length-offset));
+                                    + (data.length - offset) + " bytes: "
+                                    + HexStringUtils.byteArrayToReadableHexString(data,
+                                                                                  offset, data.length - offset));
             }
             if (!myIsStandardCBC) {
                 myTransform.init();
             }
-            myTransform.transform(data, offset, data.length-offset);
+            myTransform.transform(data, offset, data.length - offset);
             if (Trace.comm.timing && Trace.ON) {
                 authenticationTime += MicroTime.queryTimer() - startTime;
             }
         }
 
-        if (Trace.comm.timing && Trace.ON) {    // Generate timing message
+        if (Trace.comm.timing && Trace.ON) {
+            // Generate timing message
             int slen = data.length - offset;
             String msg = "to=" + myRemoteAddr + " ";
             msg += 0 != myAggragationCount ?
-                    "Sending aggragation of " + myAggragationCount :
-                    "Sending";
-            msg += " len="+slen;
-            if (0 != authenticationTime) msg+= " AuthTime="+authenticationTime;
-            if (0 != macTime) msg+= " MACTime="+macTime;
+              "Sending aggragation of " + myAggragationCount :
+              "Sending";
+            msg += " len=" + slen;
+            if (0 != authenticationTime) msg += " AuthTime=" + authenticationTime;
+            if (0 != macTime) msg += " MACTime=" + macTime;
             myTotalTime += authenticationTime + macTime;
-            if (0 != myTotalTime) msg += " TotalTime="+myTotalTime;
+            if (0 != myTotalTime) msg += " TotalTime=" + myTotalTime;
             Trace.comm.timingm(msg);
         }
 
-        writeAndRecordProgress(data, offset, data.length-offset);
+        writeAndRecordProgress(data, offset, data.length - offset);
         callDataPath(new DataCommThunk(myDataPath,
                                        myAggragationCount,
-                                       data.length-offset,
+                                       data.length - offset,
                                        null));
         return;
     }
@@ -768,11 +799,11 @@
 
         if (Trace.comm.verbose && Trace.ON) {
             Trace.comm.verbosem("to=" + myRemoteAddr + " sendBytesWithLength="
-                        + b.length);
+                                + b.length);
         }
         byte[] len = new byte[4];
         int lenlen = msgLength(b.length, len,
-                                0, myIsCompressingMsgLengths);
+                               0, myIsCompressingMsgLengths);
         byte[] clen = new byte[lenlen];
         System.arraycopy(len, 0, clen, 0, lenlen);
 
@@ -785,19 +816,20 @@
     private void setSHA1() {
         try {
             mySHA1 = MessageDigest.getInstance("SHA");
-        } catch(NoSuchAlgorithmException e) {
+        } catch (NoSuchAlgorithmException e) {
             Trace.comm.errorm("to=" + myRemoteAddr
-                        + " Unable to build SHA", e);
+                              + " Unable to build SHA", e);
             Trace.comm.notifyFatal();
         }
     }
+
     /**
      * Write a message in chunks and inform the datapath of progress in the
      * write.
      */
 
     private void writeAndRecordProgress(byte[] b, int off, int len)
-            throws IOException {
+      throws IOException {
         int offset = off;
         while (0 != len) {
             int thisLen = (len > NOTIFY_EVERY) ? NOTIFY_EVERY : len;



1.8       +359 -291  e/src/jsrc/net/vattp/data/StartUpProtocol.java

Index: StartUpProtocol.java
===================================================================
RCS file: /cvs/e/src/jsrc/net/vattp/data/StartUpProtocol.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- StartUpProtocol.java	2001/10/02 23:38:31	1.7
+++ StartUpProtocol.java	2001/11/10 19:40:37	1.8
@@ -51,7 +51,6 @@
 import java.util.Vector;
 
 
-
 /**
  * This class is used by VatTPConnection to perform the startup
  * protocol.
@@ -59,57 +58,82 @@
  */
 
 public class StartUpProtocol implements MsgHandler {
+
     /*
      * Constants for the connection startup protocol.
      */
 
+
+    /*
+    * States for the connection startup state machine.  Current state
+    * is in myState below.
+    */
+    static /*package*/ final int ST_UNSTARTED = 0;
+
+    static /*package*/ final int ST_INCOMING_EXPECT_IWANT = 1;
+
+    static /*package*/ final int ST_OUTGOING_EXPECT_IAM = 2;
+
+    static /*package*/ final int ST_INCOMING_EXPECT_GIVEINFO = 3;
 
-     /*
-     * States for the connection startup state machine.  Current state
-     * is in myState below.
-     */
-    static /*package*/ final int ST_UNSTARTED                 = 0;
-    static /*package*/ final int ST_INCOMING_EXPECT_IWANT     = 1;
-    static /*package*/ final int ST_OUTGOING_EXPECT_IAM       = 2;
-    static /*package*/ final int ST_INCOMING_EXPECT_GIVEINFO  = 3;
     static /*package*/ final int ST_OUTGOING_EXPECT_REPLYINFO = 4;
-    static /*package*/ final int ST_INCOMING_EXPECT_GO        = 5;
-    static /*package*/ final int ST_OUTGOING_EXPECT_GOTOO     = 6;
-    static /*package*/ final int ST_EXPECT_MESSAGE            = 7;
-    static /*package*/ final int ST_DEAD                      = 8;
-    static /*package*/ final int ST_TRY_NEXT                  = 9;
 
+    static /*package*/ final int ST_INCOMING_EXPECT_GO = 5;
 
+    static /*package*/ final int ST_OUTGOING_EXPECT_GOTOO = 6;
+
+    static /*package*/ final int ST_EXPECT_MESSAGE = 7;
+
+    static /*package*/ final int ST_DEAD = 8;
+
+    static /*package*/ final int ST_TRY_NEXT = 9;
+
+
     /*
      * Tokens used for submessage types of the Msg.STARTUP message
      */
-    static private final byte TOK_BYE                =  1;
-    static private final byte TOK_DUP                =  2;
-    static private final byte TOK_GIVEINFO           =  3;
-    static private final byte TOK_GO                 =  4;
-    static private final byte TOK_GOTOO              =  5;
-    static private final byte TOK_IAM                =  6;
-    static private final byte TOK_IWANT              =  7;
-    static private final byte TOK_NOT_ME             =  8;
-    static private final byte TOK_REPLYINFO          =  9;
-    static private final byte TOK_TRY                = 10;
-    static private final byte TOK_RESUME             = 11;
-    static private final byte TOK_YOUCHOSE           = 12;
+    static private final byte TOK_BYE = 1;
+
+    static private final byte TOK_DUP = 2;
+
+    static private final byte TOK_GIVEINFO = 3;
 
+    static private final byte TOK_GO = 4;
+
+    static private final byte TOK_GOTOO = 5;
+
+    static private final byte TOK_IAM = 6;
+
+    static private final byte TOK_IWANT = 7;
+
+    static private final byte TOK_NOT_ME = 8;
+
+    static private final byte TOK_REPLYINFO = 9;
+
+    static private final byte TOK_TRY = 10;
+
+    static private final byte TOK_RESUME = 11;
+
+    static private final byte TOK_YOUCHOSE = 12;
+
     /* Tokens used to report errors to the remote end.
      * All are negative numbers.
      */
-    static private final byte TOK_ERR_PROTOCOL       = -2;
-    static private final byte TOK_ERR_WRONG_ID       = -3;
-    static private final byte TOK_ERR_INTERNAL       = -4;
-
-     /*
-     * Values for supported protocol suites:
-     */
-    static /*package*/ final String PROTO_NONE             = "None";
-    static /*package*/ final String PROTO_3DES_SDH_M       = "3DES_SDH_M";
-    static /*package*/ final String PROTO_3DES_SDH_M2      = "3DES_SDH_M2";
+    static private final byte TOK_ERR_PROTOCOL = -2;
+
+    static private final byte TOK_ERR_WRONG_ID = -3;
+
+    static private final byte TOK_ERR_INTERNAL = -4;
+
+    /*
+    * Values for supported protocol suites:
+    */
+    static /*package*/ final String PROTO_NONE = "None";
 
+    static /*package*/ final String PROTO_3DES_SDH_M = "3DES_SDH_M";
+
+    static /*package*/ final String PROTO_3DES_SDH_M2 = "3DES_SDH_M2";
+
     /** The protocol negotiation string we send, least desired last */
     static private String TheAuthProtocols;
 
@@ -134,16 +158,16 @@
 
         count = 1;
         start = -1;
-        while ((start = TheAuthProtocols.indexOf(',', start+1)) >= 0)
+        while ((start = TheAuthProtocols.indexOf(',', start + 1)) >= 0)
             count++;
         result = new String[count];
         start = 0;
-        for (int i=0; i<count-1; i++) {
+        for (int i = 0; i < count - 1; i++) {
             end = TheAuthProtocols.indexOf(',', start);
             result[i] = TheAuthProtocols.substring(start, end);
             start = end + 1;
         }
-        result[count-1] = TheAuthProtocols.substring(start);
+        result[count - 1] = TheAuthProtocols.substring(start);
 
         TheAuthProtocolTable = result;
     }
@@ -187,8 +211,8 @@
     private String myRemoteVatID;
 
     /** The suspend ID to present to the other end for a reconnect.
-        If it is null, reconnection will not be attempted.
-        (Outbound connections only)*/
+     If it is null, reconnection will not be attempted.
+     (Outbound connections only)*/
     private /*nullOK*/ byte[] myOutgoingSuspendID;
 
     /** The public key of the remote end */
@@ -209,7 +233,7 @@
     private int myState = ST_UNSTARTED;
 
     /** Set true if we should stop attempting to make a connection
-        before outgoingSetup has been called.*/
+     before outgoingSetup has been called.*/
     private boolean myStop = false;
 
     /** The agreed E message protocol version */
@@ -241,15 +265,17 @@
 
     // Data for the Diffie Hellman protocol
     BigInteger x = null;
+
     static private final BigInteger g = new BigInteger("2");
+
     static private final BigInteger modulus =
-        new BigInteger("11973791477546250983817043765044391637751157152328012"
-                        + "72278994477192940843207042535379780702841268263028"
-                        + "59486033998465467188646855777933154987304015680716"
-                        + "74391647223805124273032053960564348124852668624831"
-                        + "01273341734490560148744399254916528366159159380290"
-                        + "29782321539388697349613396698017627677439533107752"
-                        + "978203");
+      new BigInteger("11973791477546250983817043765044391637751157152328012"
+                     + "72278994477192940843207042535379780702841268263028"
+                     + "59486033998465467188646855777933154987304015680716"
+                     + "74391647223805124273032053960564348124852668624831"
+                     + "01273341734490560148744399254916528366159159380290"
+                     + "29782321539388697349613396698017627677439533107752"
+                     + "978203");
 
 
 // Constructors
@@ -277,8 +303,7 @@
                                 String localVatID,
                                 byte[] /*nullOK*/ outgoingSuspendID,
                                 String localFlattenedSearchPath,
-                                VatLocationLookup vls)
-    {
+                                VatLocationLookup vls) {
         myDataPath = path;
         myIsIncoming = isIncoming;
         myIdentityKeys = identityKeys;
@@ -300,7 +325,7 @@
                 ByteArrayOutputStream baos = new ByteArrayOutputStream();
                 DataOutputStream os = new DataOutputStream(baos);
                 os.writeByte(Msg.PROTOCOL_VERSION);
-                for (int i=0; i<Msg.Version.length; i++) {
+                for (int i = 0; i < Msg.Version.length; i++) {
                     os.writeUTF(Msg.Version[i]);
                 }
                 sendMessageForSignature(baos.toByteArray());
@@ -309,7 +334,7 @@
             } else {
                 myState = ST_INCOMING_EXPECT_IWANT;
             }
-        } catch(IOException e) {
+        } catch (IOException e) {
             Trace.comm.errorm("IOException starting up", e);
             myDataPath.shutDownPath();
         }
@@ -338,7 +363,7 @@
      */
 
     void checkProtocolVersion(DataInputStream packetIn, byte[] packet)
-            throws IOException {
+      throws IOException {
         hisMessagesToSign.addElement(packet);
         Vector versions = new Vector(10);   // To save their supported versions in case of error
         String protocol = "";
@@ -347,35 +372,37 @@
                 String theirVersion = packetIn.readUTF();
                 if (!"".equals(theirVersion)) {
                     versions.addElement(theirVersion);
-                    for (int i=0; i<Msg.Version.length; i++) {
+                    for (int i = 0; i < Msg.Version.length; i++) {
                         if (theirVersion.equals(Msg.Version[i])) {
                             protocol = theirVersion;
                         }
                     }
                 }
             }
-        } catch (EOFException e) {   // Handle end of input string
+        } catch (EOFException e) {
+            // Handle end of input string
             if (Trace.comm.debug && Trace.ON) {
                 String err = "Incoming protocol versions ";
                 int size = versions.size();
-                for (int i=0; i <size-1; i++) {
+                for (int i = 0; i < size - 1; i++) {
                     err += (versions.elementAt(i) + ", ");
                 }
-                if (size>0) err += versions.lastElement();
-                Trace.comm.debugm(err+" picked "+protocol);
+                if (size > 0) err += versions.lastElement();
+                Trace.comm.debugm(err + " picked " + protocol);
             }
-            if ("" == protocol) {       // Can't agree on a protocol (java interns strings)
+            if ("" == protocol) {
+                // Can't agree on a protocol (java interns strings)
                 String err = "incoming protocol versions ";
                 int size = versions.size();
-                for (int i=0; i <size-1; i++) {
+                for (int i = 0; i < size - 1; i++) {
                     err += (versions.elementAt(i) + ", ");
                 }
-                if (size>0) err += versions.lastElement();
+                if (size > 0) err += versions.lastElement();
                 err += " are not supported, use versions ";
-                for (int i=0; i<Msg.Version.length-1; i++) {
+                for (int i = 0; i < Msg.Version.length - 1; i++) {
                     err += (Msg.Version[i] + ", ");
                 }
-                err += Msg.Version[Msg.Version.length-1];
+                err += Msg.Version[Msg.Version.length - 1];
                 sendErrProtocol(err);
                 throw new IOException(err);
             }
@@ -396,26 +423,28 @@
     public void connectionDead(VatTPConnection /*nullOK*/willBeNull, Throwable reason) {
         // Everything should be handled by the DataPath
     }
-  /**
-   * Perform the first calculation in Diffie Hellman key exchange.
-   * <p>
-   * This method gets a random x and calculate g**x mod p.  Return the value
-   * as a String base 10.
-   *
-   * @return A byte array representing the result of the first Diffie
-   *         Hellman calculation.
-   */
+
+    /**
+     * Perform the first calculation in Diffie Hellman key exchange.
+     * <p>
+     * This method gets a random x and calculate g**x mod p.  Return the value
+     * as a String base 10.
+     *
+     * @return A byte array representing the result of the first Diffie
+     *         Hellman calculation.
+     */
 
     private byte[] firstDH() {
         long startTime = Trace.comm.timing ? MicroTime.queryTimer() : 0;
         x = new BigInteger(256, ESecureRandom.getESecureRandom());
-        byte[] ans = g.modPow(x,modulus).toByteArray();
+        byte[] ans = g.modPow(x, modulus).toByteArray();
         if (Trace.comm.timing && Trace.ON) {
             Trace.comm.timingm("FirstDiffieHellman time "
-                + (MicroTime.queryTimer() - startTime) + " microseconds");
+                               + (MicroTime.queryTimer() - startTime) + " microseconds");
         }
         return ans;
     }
+
     /**
      * Format a Msg.STARTUP packet for error messages.
      *
@@ -431,13 +460,13 @@
             ret = "0x" + Integer.toHexString(msgType) + " ";
             int token = packetIn.readByte();
             ret += tokName(token) + " ";
-            if (token <= 0 || TOK_BYE == token|| TOK_DUP == token
-                    || TOK_NOT_ME == token || TOK_IAM == token) {
+            if (token <= 0 || TOK_BYE == token || TOK_DUP == token
+              || TOK_NOT_ME == token || TOK_IAM == token) {
                 ret += packetIn.readUTF();
             }
             packetIn.close();
             return ret;
-        } catch(IOException e) {
+        } catch (IOException e) {
             Trace.comm.errorm("IOException on byte array??", e);
         }
         return ret + "\n" + HexStringUtils.byteArrayToReadableHexString(packet);
@@ -452,6 +481,7 @@
     /*package*/ int getState() {
         return myState;
     }
+
     /**
      * Process expecting an GIVEINFO <remoteVatID> <remotePath> <hisPublicKey>
      *   -or-
@@ -470,8 +500,7 @@
     private void handleStateIncomingExpectGIVEINFO(byte token,
                                                    DataInputStream packetIn,
                                                    byte[] packet)
-         throws IOException
-    {
+      throws IOException {
         hisMessagesToSign.addElement(packet);
         if (myStop) {
             startupError(TOK_DUP, "Stopped connection");
@@ -481,44 +510,50 @@
             String remoteSearchPath = packetIn.readUTF();
             byte[] hisKey = new byte[packetIn.readUnsignedShort()];
             packetIn.readFully(hisKey);
-            if (!isHisPublicKeyOK(myRemoteVatID, hisKey, token)) return;;
+            if (!isHisPublicKeyOK(myRemoteVatID, hisKey, token)) return;
+            ;
 
             int i = myDataPath.identifyIncoming(myLocalVatID,
                                                 myRemoteVatID,
                                                 remoteSearchPath);
             switch (i) {
-                case VatTPMgr.LIVES_CONTINUE: {
-                    myState = ST_INCOMING_EXPECT_GO;
-                    sendReplyInfo();
-                    break;
-                }
-                case VatTPMgr.LIVES_DUP: {
-                    myDataPath.stopStartUpProtocol();
-                    startupError(TOK_DUP, "Crossed connections");
-                    break;
-                }
-                case VatTPMgr.LIVES_NOTIFY: {
-                    myState = ST_INCOMING_EXPECT_GO;
-                    sendYouChose();
-                    break;
-                }
-                default: {
-                    Trace.comm.errorm("Invalid return code=" + i);
-                    startupError(TOK_ERR_INTERNAL, "Internal error at my end");
-                    break;
-                }
+                case VatTPMgr.LIVES_CONTINUE:
+                    {
+                        myState = ST_INCOMING_EXPECT_GO;
+                        sendReplyInfo();
+                        break;
+                    }
+                case VatTPMgr.LIVES_DUP:
+                    {
+                        myDataPath.stopStartUpProtocol();
+                        startupError(TOK_DUP, "Crossed connections");
+                        break;
+                    }
+                case VatTPMgr.LIVES_NOTIFY:
+                    {
+                        myState = ST_INCOMING_EXPECT_GO;
+                        sendYouChose();
+                        break;
+                    }
+                default:
+                    {
+                        Trace.comm.errorm("Invalid return code=" + i);
+                        startupError(TOK_ERR_INTERNAL, "Internal error at my end");
+                        break;
+                    }
             }
         } else if (token == TOK_DUP) {
             myDataPath.duplicatePath(
-                        "Incoming crossed connections"
-                        + formatStartupPacket(packet), false);
+              "Incoming crossed connections"
+              + formatStartupPacket(packet), false);
         } else if (token == TOK_NOT_ME) {
             startupLocalError("Other end tried to connect to self");
         } else {
             startupError(TOK_ERR_PROTOCOL, "Expected " + tokName(TOK_GIVEINFO)
-                            + " got " + formatStartupPacket(packet));
+                         + " got " + formatStartupPacket(packet));
         }
     }
+
     /**
      * Process expecting a GO <auth suite> <DH parameter>
      *   -or-
@@ -537,8 +572,8 @@
      *            notifing the other end.
      */
     private void handleStateIncomingExpectGO(byte token,
-                DataInputStream packetIn, byte[] packet)
-            throws IOException {
+                                             DataInputStream packetIn, byte[] packet)
+      throws IOException {
         if (token == TOK_GO) {
             String protocol = packetIn.readUTF();
             if (myDataPath.resumeConnection(null)) {
@@ -581,13 +616,14 @@
             }
         } else if (token == TOK_DUP) {
             myDataPath.duplicatePath(
-                        "Incoming crossed connections "
-                        + formatStartupPacket(packet), true);
+              "Incoming crossed connections "
+              + formatStartupPacket(packet), true);
         } else {
             startupError(TOK_ERR_PROTOCOL, "Expected " + tokName(TOK_GO)
-                    + " got " + formatStartupPacket(packet));
+                         + " got " + formatStartupPacket(packet));
         }
     }
+
     /**
      * Process expecting a IWANT <localVatID> message.
      *
@@ -599,22 +635,22 @@
      *            should terminate.
      */
     private void handleStateIncomingExpectIWANT(byte token,
-                DataInputStream packetIn, byte[] packet)
-            throws IOException {
+                                                DataInputStream packetIn, byte[] packet)
+      throws IOException {
         hisMessagesToSign.addElement(packet);
         if (myStop) {
             startupError(TOK_DUP, "Stopped connection");
             return;
         }
-        if (token != TOK_IWANT) { /* IWANT <id> */
+        if (token != TOK_IWANT) {
+            /* IWANT <id> */
             startupError(TOK_ERR_PROTOCOL, "Expected " + tokName(TOK_IWANT)
                          + " got " + formatStartupPacket(packet));
             return;
         }
         String wantedVatID = packetIn.readUTF();
         if (wantedVatID.equals(myLocalVatID) ||
-            wantedVatID.equals(VatIdentity.WHOEVER))
-        {
+          wantedVatID.equals(VatIdentity.WHOEVER)) {
             sendIAm();
             myState = ST_INCOMING_EXPECT_GIVEINFO;
             return;
@@ -630,7 +666,7 @@
         }
         if (Trace.comm.debug && Trace.ON) {
             Trace.comm.debugm("got request for " + wantedVatID
-                    + " when I am " + myLocalVatID);
+                              + " when I am " + myLocalVatID);
         }
         startupError(TOK_NOT_ME, "I don't know " + wantedVatID);
     }
@@ -655,8 +691,8 @@
      *            notifing the other end.
      */
     private void handleStateOutgoingExpectGOTOO(byte token,
-                DataInputStream packetIn, byte[] packet)
-            throws IOException {
+                                                DataInputStream packetIn, byte[] packet)
+      throws IOException {
         if (token == TOK_GOTOO) {
             if (null != myOutgoingSuspendID) {
                 myProtocolSuite = null;
@@ -680,9 +716,10 @@
             myDataPath.cantResume(formatStartupPacket(packet));
         } else {
             startupError(TOK_ERR_PROTOCOL, "Expected " + tokName(TOK_GOTOO)
-                    + " got " + formatStartupPacket(packet));
+                         + " got " + formatStartupPacket(packet));
         }
     }
+
     /**
      * Process expecting an IAM <remoteVatID> <myPublicKey>
      *   -or-
@@ -703,8 +740,8 @@
      *            notifing the other end.
      */
     private void handleStateOutgoingExpectIAM(byte token,
-                DataInputStream packetIn, byte[] packet)
-    throws IOException {
+                                              DataInputStream packetIn, byte[] packet)
+      throws IOException {
         hisMessagesToSign.addElement(packet);
         if (myStop) {
             startupError(TOK_DUP, "Stopped connection");
@@ -721,7 +758,7 @@
                 myDataPath.enqueue(outbuf.toByteArray());
                 myDataPath.connectToSelf();
             } else if (remoteVatID.equals(myRemoteVatID)
-                    || myRemoteVatID.equals(VatIdentity.WHOEVER)) {
+              || myRemoteVatID.equals(VatIdentity.WHOEVER)) {
                 byte[] hisKey = new byte[packetIn.readUnsignedShort()];
                 packetIn.readFully(hisKey);
                 if (!isHisPublicKeyOK(remoteVatID, hisKey, token)) return;
@@ -729,9 +766,9 @@
                 if (myRemoteVatID.equals(VatIdentity.WHOEVER)) {
                     myRemoteVatID = remoteVatID;
                     Object orders = myDataPath.identifyOutgoing(
-                                                    myLocalVatID,
-                                                    myRemoteVatID,
-                                                    remoteFlattenedSearchPath);
+                      myLocalVatID,
+                      myRemoteVatID,
+                      remoteFlattenedSearchPath);
                     if (null == orders) {
                         myOutgoingSuspendID = null;
                     } else if (orders instanceof byte[]) {
@@ -757,13 +794,14 @@
             startupLocalError("got " + formatStartupPacket(packet));
         } else if (token == TOK_DUP) {
             myDataPath.duplicatePath(
-                        "outgoing crossed connections"
-                        + formatStartupPacket(packet), true);
+              "outgoing crossed connections"
+              + formatStartupPacket(packet), true);
         } else {
             startupError(TOK_ERR_PROTOCOL, "Expected " + tokName(TOK_IAM)
-                    + " got " + formatStartupPacket(packet));
+                         + " got " + formatStartupPacket(packet));
         }
     }
+
     /**
      * Process expecting a REPLYINFO <remotePath>
      *   -or-
@@ -782,8 +820,8 @@
      *            notifing the other end.
      */
     private void handleStateOutgoingExpectREPLYINFO(byte token,
-                DataInputStream packetIn, byte[] packet)
-            throws IOException {
+                                                    DataInputStream packetIn, byte[] packet)
+      throws IOException {
         hisMessagesToSign.addElement(packet);
         if (myStop) {
             startupError(TOK_DUP, "Stopped connection");
@@ -792,9 +830,9 @@
             //String remoteSearchPath = packetIn.readUTF();
             String protocols = packetIn.readUTF();
             if (TOK_YOUCHOSE == token && myDataPath.isChoiceIncoming()) {
-                    myDataPath.stopStartUpProtocol();
-                    startupError(TOK_DUP, "Crossed connections");
-                    return;
+                myDataPath.stopStartUpProtocol();
+                startupError(TOK_DUP, "Crossed connections");
+                return;
             }
             //String[] path = EARL.parseSearchPath(remoteSearchPath);
             //myDataPath.extendSearchPath(path);
@@ -803,20 +841,20 @@
                 sendResume();
                 return;
             }
-            for (;;) {
+            for (; ;) {
                 int i = protocols.indexOf(',');
                 String protocol;
                 if (i < 0) {
                     protocol = protocols;
                     protocols = "";
                 } else {
-                    protocol = protocols.substring(0,i);
-                    protocols = protocols.substring(i+1);
+                    protocol = protocols.substring(0, i);
+                    protocols = protocols.substring(i + 1);
                 }
                 if (protocol.equals("")) {
                     //No agreement
                     startupError(TOK_ERR_PROTOCOL,
-                                        "Can't agree on an authorization protocol");
+                                 "Can't agree on an authorization protocol");
                     return;
                 }
                 if (null != matchProtocols(protocol)) {
@@ -832,8 +870,8 @@
             }
         } else if (token == TOK_DUP) {
             myDataPath.duplicatePath(
-                        "Outgoing crossed connections "
-                        + formatStartupPacket(packet), true);
+              "Outgoing crossed connections "
+              + formatStartupPacket(packet), true);
             return;
         } else {
             startupError(TOK_ERR_PROTOCOL, "Expected "
@@ -842,114 +880,119 @@
             return;
         }
     }
-  /**
-   * Decode the line form of his public key and check that it is for his
-   * vatID.
-   *
-   * @param vatID His vatID.
-   * @param hisKey His DSA public key expressed as a byte array.
-   *
-   * @exception ConnectionStartupException If hisKey has a bad format, or is
-   *          invalid.
-   * @return is true if his public key matches is vatID, false otherwise.
-   */
 
+    /**
+     * Decode the line form of his public key and check that it is for his
+     * vatID.
+     *
+     * @param vatID His vatID.
+     * @param hisKey His DSA public key expressed as a byte array.
+     *
+     * @exception ConnectionStartupException If hisKey has a bad format, or is
+     *          invalid.
+     * @return is true if his public key matches is vatID, false otherwise.
+     */
+
     private boolean isHisPublicKeyOK(String vatID, byte[] hisKey, int token)
-            throws IOException {
+      throws IOException {
         try {
             myHisPublicKey = new DSAPublicKey(hisKey);
             if (!vatID.equals(
-                    VatIdentity.calculateVatID(myHisPublicKey))) {
+              VatIdentity.calculateVatID(myHisPublicKey))) {
                 startupError(TOK_ERR_WRONG_ID, "Your key is not for your vat ID");
                 return false;
             }
-        } catch(InvalidKeyException e) {
+        } catch (InvalidKeyException e) {
             Trace.comm.debugm("InvalidKeyException", e);
             startupError(TOK_ERR_WRONG_ID, "You provided an invalid public key");
             return false;
-        } catch(NumberFormatException e) {
+        } catch (NumberFormatException e) {
             Trace.comm.debugm("NumberFormatException", e);
             startupError(TOK_ERR_WRONG_ID, "You did not provide valid public key data ", e);
             return false;
         }
         return true;
     }
-  /**
-   * Perform the second calculation in Diffie Hellman key exchange.
-   * <p>
-   * This method takes the remote end's g**y mod p, and the sitnature on it.
-   * It checks ths signature and performs the second Diffie Hellman calculation
-   * as (g**y mod p) ** x mod p.
-   * <p>
-   * It then takes the resulting dh secret and calculates values for the
-   * initial sequence numbers (both send path and receive path).
-   *
-   * @param publiddh is a byte array containing the far end's first Diffie
-   *         Hellman calculation.
-   * @param sig is a byte array containing the far end's DSS signature on
-   *         the startup protocol.
-   * @param token The startup protocol token being processed.  (For determining
-   *         whether we are the initator or receipent and error reporting.)
-   *
-   * @return is true if the connection attempt should continue,
-   *         false otherwise.
-   */
 
+    /**
+     * Perform the second calculation in Diffie Hellman key exchange.
+     * <p>
+     * This method takes the remote end's g**y mod p, and the sitnature on it.
+     * It checks ths signature and performs the second Diffie Hellman calculation
+     * as (g**y mod p) ** x mod p.
+     * <p>
+     * It then takes the resulting dh secret and calculates values for the
+     * initial sequence numbers (both send path and receive path).
+     *
+     * @param publiddh is a byte array containing the far end's first Diffie
+     *         Hellman calculation.
+     * @param sig is a byte array containing the far end's DSS signature on
+     *         the startup protocol.
+     * @param token The startup protocol token being processed.  (For determining
+     *         whether we are the initator or receipent and error reporting.)
+     *
+     * @return is true if the connection attempt should continue,
+     *         false otherwise.
+     */
+
     private boolean isSecondDHOK(byte[] publicdh, byte[] sig, byte token)
-            throws IOException {
+      throws IOException {
         long startTime = Trace.comm.timing ? MicroTime.queryTimer() : 0;
         if (!isSigGood(publicdh, sig, token)) {
             return false;     // Bow out, messages already issued
         }
         BigInteger dh = new BigInteger(publicdh);
         //byte[] dhSecret = dh.modPow(x,modulus).toByteArray();
-            BigInteger test = dh.modPow(x,modulus);
-            byte[] dhSecret = test.toByteArray();
+        BigInteger test = dh.modPow(x, modulus);
+        byte[] dhSecret = test.toByteArray();
         // Now calculate the various keys from dhSecret
         MessageDigest md5 = null;
         try {
             md5 = MessageDigest.getInstance("MD5");
-        } catch(NoSuchAlgorithmException e) {
+        } catch (NoSuchAlgorithmException e) {
             startupError(TOK_ERR_INTERNAL, "Unable to build MD5", e);
             return false;
         }
         byte[] ivs = md5Hash(0x99, dhSecret, md5);
         byte[] sendIV;
         byte[] recvIV;
-        if (TOK_GO == token) { // We are receipent
+        if (TOK_GO == token) {
+            // We are receipent
             sendIV = subbytearray(ivs, 8, 8);
             recvIV = subbytearray(ivs, 0, 8);
-        } else {                                  // We are initiator
+        } else {
+            // We are initiator
             sendIV = subbytearray(ivs, 0, 8);
             recvIV = subbytearray(ivs, 8, 8);
         }
         if (Trace.comm.timing && Trace.ON) {
             Trace.comm.timingm("SecondDiffieHellman time "
-                + (MicroTime.queryTimer() - startTime) + " microseconds");
+                               + (MicroTime.queryTimer() - startTime) + " microseconds");
         }
         myDataPath.setAuthorizationSecrets(dhSecret, sendIV, recvIV);
         return true;
     }
-  /**
-   * Check the signature on the data received.
-   *
-   * @param data is the data to check.
-   * @param sig is the signature.
-   * @param token is the startup protocol token being processed for error
-   * reporting.
-   *
-   * @return is true if the signature is good.  False for a bunch of "can't
-   * occur" situations,
-   * and things like invalid or no public key from the other end, or invalid
-   * signature.
-   */
 
+    /**
+     * Check the signature on the data received.
+     *
+     * @param data is the data to check.
+     * @param sig is the signature.
+     * @param token is the startup protocol token being processed for error
+     * reporting.
+     *
+     * @return is true if the signature is good.  False for a bunch of "can't
+     * occur" situations,
+     * and things like invalid or no public key from the other end, or invalid
+     * signature.
+     */
+
     private boolean isSigGood(byte[] data, byte[] sig, byte token)
-            throws IOException {
+      throws IOException {
         if (null == mySignature) {
             try {
                 mySignature = Signature.getInstance("DSA");
-            } catch(NoSuchAlgorithmException e) {
+            } catch (NoSuchAlgorithmException e) {
                 Trace.comm.errorm("Unable to build DSA", e);
                 startupError(TOK_ERR_INTERNAL, "Unable to build DSA", e);
                 return false;
@@ -961,12 +1004,12 @@
         }
         try {
             mySignature.initVerify(myHisPublicKey);
-        } catch(InvalidKeyException e) {
+        } catch (InvalidKeyException e) {
             startupError(TOK_ERR_PROTOCOL, "Invalid His Public Key", e);
             return false;
         }
         try {
-            for (int i=0; i<hisMessagesToSign.size(); i++) {
+            for (int i = 0; i < hisMessagesToSign.size(); i++) {
                 mySignature.update((byte[])hisMessagesToSign.elementAt(i));
             }
             mySignature.update(data);
@@ -974,16 +1017,17 @@
                 startupError(TOK_ERR_PROTOCOL, "Invalid signature");
                 return false;
             }
-        } catch(SignatureException e) {
+        } catch (SignatureException e) {
             startupError(TOK_ERR_PROTOCOL, "Invalid signature", e);
             return false;
-        } catch(NumberFormatException e) {
+        } catch (NumberFormatException e) {
             startupError(TOK_ERR_PROTOCOL, "Invalid signature", e);
             return false;
         }
         Trace.comm.eventm("Signature checked as valid");
         return true;
     }
+
     /**
      * Match a suggested authorization protocol with the ones we support.
      * The comparison ignores the case of the letters.
@@ -992,30 +1036,31 @@
      * @return the standard cased version of the matched name or null if no match.
      */
     private String matchProtocols(String protocol) {
-        for (int i=0; i<TheAuthProtocolTable.length; i++) {
+        for (int i = 0; i < TheAuthProtocolTable.length; i++) {
             if (protocol.equalsIgnoreCase(TheAuthProtocolTable[i])) {
                 return TheAuthProtocolTable[i];
             }
         }
         return null;
     }
-  /**
-   * Calculate the MD5 hash of some data with a specific padding.
-   * <p>
-   * The padding allows different values to be obtained from the same data
-   * by varing the padding value.  We use it to get the different
-   * authentication values from the same Diffie Hellman shared secret.
-   *
-   * @param pad The int (treated as a byte) to be used to pad the MD5 calculation.
-   * @param data The data to be hashed.
-   * @param md5 The message digest object to be used.
-   *
-   * @return A byte array representing the hash.
-   */
+
+    /**
+     * Calculate the MD5 hash of some data with a specific padding.
+     * <p>
+     * The padding allows different values to be obtained from the same data
+     * by varing the padding value.  We use it to get the different
+     * authentication values from the same Diffie Hellman shared secret.
+     *
+     * @param pad The int (treated as a byte) to be used to pad the MD5 calculation.
+     * @param data The data to be hashed.
+     * @param md5 The message digest object to be used.
+     *
+     * @return A byte array representing the hash.
+     */
 
     private byte[] md5Hash(int pad, byte[] data, MessageDigest md5) {
         byte[] mdConst = new byte[16];
-        for (int i=0; i<mdConst.length; i++) mdConst[i] = (byte)pad;
+        for (int i = 0; i < mdConst.length; i++) mdConst[i] = (byte)pad;
         md5.reset();                    //Initialize a new hash
         md5.update(mdConst);
         return md5.digest(data);
@@ -1034,7 +1079,7 @@
 
         if (Trace.comm.verbose && Trace.ON) {
             Trace.comm.verbosem(
-                    HexStringUtils.byteArrayToReadableHexString(packetArray));
+              HexStringUtils.byteArrayToReadableHexString(packetArray));
         }
 
         try {
@@ -1052,43 +1097,44 @@
 
                     if (Trace.comm.verbose && Trace.ON)
                         Trace.comm.verbosem("received startup packet "
-                                + formatStartupPacket(packetArray));
+                                            + formatStartupPacket(packetArray));
 
                     if (token < 0) {
                         startupLocalError("Error " + tokName(token)
-                                + " from other side: " + packetIn.readUTF());
+                                          + " from other side: " + packetIn.readUTF());
                         return;
                     }
 
                     switch (myState) {
                         case ST_INCOMING_EXPECT_IWANT:
                             handleStateIncomingExpectIWANT(
-                                    token, packetIn, packetArray);
+                              token, packetIn, packetArray);
                             break;
                         case ST_OUTGOING_EXPECT_IAM:
                             handleStateOutgoingExpectIAM(
-                                    token, packetIn, packetArray);
+                              token, packetIn, packetArray);
                             break;
                         case ST_INCOMING_EXPECT_GIVEINFO:
                             handleStateIncomingExpectGIVEINFO(
-                                    token, packetIn, packetArray);
+                              token, packetIn, packetArray);
                             break;
                         case ST_OUTGOING_EXPECT_REPLYINFO:
                             handleStateOutgoingExpectREPLYINFO(
-                                    token, packetIn, packetArray);
+                              token, packetIn, packetArray);
                             break;
                         case ST_INCOMING_EXPECT_GO:
                             handleStateIncomingExpectGO(
-                                    token, packetIn, packetArray);
+                              token, packetIn, packetArray);
                             break;
                         case ST_OUTGOING_EXPECT_GOTOO:
                             handleStateOutgoingExpectGOTOO(
-                                    token, packetIn, packetArray);
+                              token, packetIn, packetArray);
                             break;
                         case ST_DEAD:
-                            if (Trace.comm.debug && Trace.ON) Trace.comm.debugm(
-                                "dead MsgConnection ignoring startup packet "
-                                        + formatStartupPacket(packetArray));
+                            if (Trace.comm.debug && Trace.ON)
+                                Trace.comm.debugm(
+                                  "dead MsgConnection ignoring startup packet "
+                                  + formatStartupPacket(packetArray));
                             break;
                         default:
                             startupLocalError("state machine confused, in state " +
@@ -1100,14 +1146,14 @@
             } catch (IOException e) {
                 try {
                     startupError(TOK_ERR_PROTOCOL,
-                             "Exception handling packet: ", e);
+                                 "Exception handling packet: ", e);
                 } catch (IOException e2) {
                     Trace.comm.errorm("IOException " + e2 + " handling exception", e);
                 }
             }
         } catch (Exception e) {
             Trace.comm.errorm(
-                    "Exception during startup for\n  " + myDataPath, e);
+              "Exception during startup for\n  " + myDataPath, e);
             if (!myStop) {
                 myDataPath.tryNext(e.toString() + "\n" + ThrowableSugar.javaStack(e));
             } else {
@@ -1115,6 +1161,7 @@
             }
         }
     }
+
     /**
      * Handle the Msg.PROTOCOL_ACCEPTED message.
      * Determine which version of the protocol was accepted and configure this
@@ -1123,11 +1170,11 @@
      * @param packetBytes the packet received.
      */
     private void processProtocolAccepted(DataInputStream packetIn,
-                byte[] packet)
-            throws IOException {
+                                         byte[] packet)
+      throws IOException {
         hisMessagesToSign.addElement(packet);
         String theirVersion = packetIn.readUTF();
-        for (int i=0; i<Msg.Version.length; i++) {
+        for (int i = 0; i < Msg.Version.length; i++) {
             if (theirVersion.equals(Msg.Version[i])) {
                 myEMsgProtocolVersion = Msg.Version[i];
                 return;
@@ -1135,13 +1182,14 @@
         }
         String err = "incoming protocol version " + theirVersion;
         err += " are not supported, use versions ";
-        for (int i=0; i<Msg.Version.length-1; i++) {
+        for (int i = 0; i < Msg.Version.length - 1; i++) {
             err += (Msg.Version[i] + ", ");
         }
-        err += Msg.Version[Msg.Version.length-1];
+        err += Msg.Version[Msg.Version.length - 1];
         sendErrProtocol(err);
         throw new IOException(err);
     }
+
     /**
      * Send a TOK_ERR_PROTOCOL packet
      *
@@ -1157,6 +1205,7 @@
         msgOut.writeUTF(msg);
         myDataPath.enqueue(outbuf.toByteArray());
     }
+
     /**
      * Send a TOK_GIVEINFO packet
      *
@@ -1174,6 +1223,7 @@
         msgOut.write(key);
         sendMessageForSignature(outbuf.toByteArray());
     }
+
     /**
      * Send a TOK_GO packet
      *
@@ -1190,6 +1240,7 @@
         // No need to sign, no signature
         myDataPath.enqueue(outbuf.toByteArray());
     }
+
     /**
      * Send a TOK_GO packet
      *
@@ -1213,6 +1264,7 @@
         // No need to sign, this one contains the signature.
         myDataPath.enqueue(outbuf.toByteArray());
     }
+
     /**
      * Send a TOK_GOTOO packet.
 
@@ -1232,6 +1284,7 @@
         // No need to sign, there is no checking
         myDataPath.enqueue(outbuf.toByteArray());
     }
+
     /**
      * Send a TOK_GOTOO packet
      *
@@ -1242,7 +1295,7 @@
      * @exception IOException is thrown if there is a problem on the send.
      */
     private void sendGoToo(String protocol, byte[] dhparm,
-                        byte[] sig) throws IOException {
+                           byte[] sig) throws IOException {
         ByteArrayOutputStream outbuf = new ByteArrayOutputStream();
         DataOutputStream msgOut = new DataOutputStream(outbuf);
         msgOut.writeByte(Msg.STARTUP);
@@ -1255,6 +1308,7 @@
         // No need to sign, this message contains the signature
         myDataPath.enqueue(outbuf.toByteArray());
     }
+
     /**
      * Send a TOK_IAM packet
      *
@@ -1272,6 +1326,7 @@
         msgOut.write(key);
         sendMessageForSignature(outbuf.toByteArray());
     }
+
     /**
      * Send a TOK_IWANT packet
      *
@@ -1285,6 +1340,7 @@
         msgOut.writeUTF(myRemoteVatID);
         sendMessageForSignature(outbuf.toByteArray());
     }
+
     /** Send a message to the other end and save the message for signature
      * calculation.
      *
@@ -1294,6 +1350,7 @@
         myMessagesToSign.addElement(message);
         myDataPath.enqueue(message);
     }
+
     /**
      * Send a TOK_REPLYINFO packet
      *
@@ -1307,6 +1364,7 @@
         msgOut.writeUTF(TheAuthProtocols);
         sendMessageForSignature(outbuf.toByteArray());
     }
+
     /**
      * Send a TOK_RESUME packet
      *
@@ -1322,6 +1380,7 @@
         // We don't need to sign for resume.
         myDataPath.enqueue(outbuf.toByteArray());
     }
+
     /**
      * Send a TOK_TRY packet
      *
@@ -1336,6 +1395,7 @@
         // Don't need signature.  This ends the protocol
         myDataPath.enqueue(outbuf.toByteArray());
     }
+
     /**
      * Send a TOK_YOUCHOSE packet
      *
@@ -1349,35 +1409,36 @@
         msgOut.writeUTF(TheAuthProtocols);
         sendMessageForSignature(outbuf.toByteArray());
     }
-  /**
-   * Return a our signature on the data sent.
-   *
-   * @param data The additional data to sign.
-   * @param token The startup protocol token being processed for error reporting.
-   *
-   * @return The DSS signature on the data as a byte array.
-   * @exception ConnectionStartupException For a bunch of "can't occur" situations.
-   */
+
+    /**
+     * Return a our signature on the data sent.
+     *
+     * @param data The additional data to sign.
+     * @param token The startup protocol token being processed for error reporting.
+     *
+     * @return The DSS signature on the data as a byte array.
+     * @exception ConnectionStartupException For a bunch of "can't occur" situations.
+     */
 
     private byte[] signSent(byte[] data, byte token)
-            throws IOException {
+      throws IOException {
         long startTime = Trace.comm.timing ? MicroTime.queryTimer() : 0;
         if (null == mySignature) {
             try {
                 mySignature = Signature.getInstance("DSA");
-            } catch(NoSuchAlgorithmException e) {
+            } catch (NoSuchAlgorithmException e) {
                 startupError(TOK_ERR_INTERNAL, "Unable to build DSA", e);
                 return null;
             }
         }
         try {
- //WARNING - WARNING - WARNING
- // In order to use ESecureRandom to calculate each signature in mySignature
- // we directly set the random signature seed.  If we ever calculate two
- // signatures with the same seed, we have blown the security of the secret
- // key.
- // I (WSF) think it will be easier to avoid this problem if mySignature
- // remains private, and signatures are only calculated one place in the code.
+            //WARNING - WARNING - WARNING
+            // In order to use ESecureRandom to calculate each signature in mySignature
+            // we directly set the random signature seed.  If we ever calculate two
+            // signatures with the same seed, we have blown the security of the secret
+            // key.
+            // I (WSF) think it will be easier to avoid this problem if mySignature
+            // remains private, and signatures are only calculated one place in the code.
             PrivateKey pk = myIdentityKeys.getPrivate();
             BigInteger q = ((DSAPrivateKey)pk).getParams().getQ();
             while (true) {
@@ -1388,25 +1449,27 @@
                 }
             }
             mySignature.initSign(pk);
-        } catch(InvalidKeyException e) {
+        } catch (InvalidKeyException e) {
             startupError(TOK_ERR_INTERNAL, "Invalid private key???", e);
             return null;
         }
         byte[] signature = null;
         try {
-            for (int i=0; i<myMessagesToSign.size(); i++) {
+            for (int i = 0; i < myMessagesToSign.size(); i++) {
                 mySignature.update((byte[])myMessagesToSign.elementAt(i));
             }
             mySignature.update(data);
             signature = mySignature.sign();
-        } catch(SignatureException e) {
+        } catch (SignatureException e) {
             startupError(TOK_ERR_INTERNAL, "Unable to sign???", e);
             return null;
         }
-        if (Trace.comm.timing && Trace.ON) Trace.comm.timingm("Signing time "
-                + (MicroTime.queryTimer() - startTime) + " microseconds");
+        if (Trace.comm.timing && Trace.ON)
+            Trace.comm.timingm("Signing time "
+                               + (MicroTime.queryTimer() - startTime) + " microseconds");
         return signature;
     }
+
     /**
      * Terminate the connection setup protocol with an error that will get
      * passed to the remote end too.
@@ -1428,6 +1491,7 @@
             myDataPath.shutDownPath();
         }
     }
+
     /**
      * Terminate the connection setup protocol with an error that will get
      * passed to the remote end too.
@@ -1437,7 +1501,7 @@
      * @param t A throwable associated with the error.
      */
     private void startupError(byte errorToken, String msg, Throwable t)
-            throws IOException {
+      throws IOException {
         ByteArrayOutputStream outbuf = new ByteArrayOutputStream();
         DataOutputStream msgOut = new DataOutputStream(outbuf);
         msgOut.writeByte(Msg.STARTUP);
@@ -1452,6 +1516,7 @@
             myDataPath.shutDownPath();
         }
     }
+
     /**
      * Terminate the connection setup protocol with an error.
      */
@@ -1462,6 +1527,7 @@
             myDataPath.shutDownPath();
         }
     }
+
     /**
      * Startup protocol has succeeded, let the messages flow.
      */
@@ -1472,62 +1538,64 @@
         myDataPath.unRegisterMsgHandler(Msg.PROTOCOL_ACCEPTED, this);
 
         myDataPath.startupSuccessful(
-                            myEMsgProtocolVersion,
-                            myProtocolSuite);
+          myEMsgProtocolVersion,
+          myProtocolSuite);
     }
 // Method for use by DataPath
     /**
-         * Stop the start up protocol.  This method is called by the DataPath
-         * relaying a call from the VatTPMgr when it determines that
-         * there are two connections being built between this vat and another vat,
-         * andthat this connection is the one that should be abandonded.
-         */
+     * Stop the start up protocol.  This method is called by the DataPath
+     * relaying a call from the VatTPMgr when it determines that
+     * there are two connections being built between this vat and another vat,
+     * andthat this connection is the one that should be abandonded.
+     */
 
     /*package*/ void stopStartUpProtocol() {
         myStop = true;
     }
-  /**
-   * Return a subarray of a given array.
-   * <p>
-   * The subarray must be within the given array or an exception will be
-thrown.
-   *
-   * @param bytes The array.
-   * @param offset The offset in bytes to the start of the subarray.
-   * @param len The length of the subarray.
-   *
-   * @return A new byte array which is the subarray.
-   */
+
+    /**
+     * Return a subarray of a given array.
+     * <p>
+     * The subarray must be within the given array or an exception will be
+  thrown.
+     *
+     * @param bytes The array.
+     * @param offset The offset in bytes to the start of the subarray.
+     * @param len The length of the subarray.
+     *
+     * @return A new byte array which is the subarray.
+     */
 
     private byte[] subbytearray(byte[] bytes, int offset, int len) {
         byte[] ans = new byte[len];
         System.arraycopy(bytes, offset, ans, 0, len);
         return ans;
     }
-   /**
-    * Translate a startup protocol message token to a printable string for
-    * error messages and the like.
-    *
-    * @param tok The integer startup token to represent as a string.
-    * @return A string value for the token or TOK_ERR_??? if tok is negative,
-    *         or TOK_??? if tok is positive.
-    */
+
+    /**
+     * Translate a startup protocol message token to a printable string for
+     * error messages and the like.
+     *
+     * @param tok The integer startup token to represent as a string.
+     * @return A string value for the token or TOK_ERR_??? if tok is negative,
+     *         or TOK_??? if tok is positive.
+     */
 
     static String tokName(int tok) {
         if (tok < 0) {
-            tok = -tok ;
+            tok = -tok;
             if (tok > errTokNames.length) {
-                return "TOK_ERR_???[-" + tok + "]" ;
+                return "TOK_ERR_???[-" + tok + "]";
             }
-            return errTokNames[tok-1] + "[-" + tok + "]" ;
+            return errTokNames[tok - 1] + "[-" + tok + "]";
         }
         if (tok == 0) {
-            return "TOK_???[0]" ;
+            return "TOK_???[0]";
         }
         if (tok > tokNames.length) {
-            return "TOK_???[" + tok + "]" ;
+            return "TOK_???[" + tok + "]";
         }
-        return tokNames[tok-1] + "[" + tok + "]" ;
+        return tokNames[tok - 1] + "[" + tok + "]";
     }
 }
 



1.3       +3 -1      e/src/jsrc/net/vattp/data/StreamMessage.java

Index: StreamMessage.java
===================================================================
RCS file: /cvs/e/src/jsrc/net/vattp/data/StreamMessage.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- StreamMessage.java	2001/09/06 09:55:39	1.2
+++ StreamMessage.java	2001/11/10 19:40:37	1.3
@@ -26,7 +26,9 @@
  * Structure to pass notification type message to the SendThread
  * @author Bill Frantz
  */
-/*package*/ class StreamMessage {
+/*package*/
+class StreamMessage {
+
     /*package*/byte[] myMessage;
     /*package*/Runnable myNotification;
     /*package*/Runner myPlaceToRun;



1.4       +16 -13    e/src/jsrc/net/vattp/data/Suspend.java

Index: Suspend.java
===================================================================
RCS file: /cvs/e/src/jsrc/net/vattp/data/Suspend.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- Suspend.java	2001/10/02 01:29:18	1.3
+++ Suspend.java	2001/11/10 19:40:37	1.4
@@ -33,17 +33,19 @@
  * @author Bill Frantz
  */
 
-/*package*/ class Suspend implements MsgHandler {
+/*package*/
+class Suspend implements MsgHandler {
+
     /**
-         * Constuct an object to handle the SUSPEND message (which also acts as
-         * the shutdown message).
-         *
-         * @param connection is the VatTPConnection to work with.
-         */
+     * Constuct an object to handle the SUSPEND message (which also acts as
+     * the shutdown message).
+     *
+     * @param connection is the VatTPConnection to work with.
+     */
     /*package*/ Suspend(VatTPConnection connection) {
         try {
             connection.registerMsgHandler(Msg.SUSPEND, this);
-        } catch(IOException e) {
+        } catch (IOException e) {
             Trace.comm.errorm("Already registered??");
         }
     }
@@ -66,17 +68,18 @@
      */
     public void processMessage(byte[] message, VatTPConnection connection) {
         Assertion.test(Msg.SUSPEND == message[0], "Message not a SUSPEND message\n",
-                        HexStringUtils.byteArrayToReadableHexString(message));
-        if (1 == message.length) {  // Message is a shutdown message
+                       HexStringUtils.byteArrayToReadableHexString(message));
+        if (1 == message.length) {
+            // Message is a shutdown message
             if (Trace.comm.debug && Trace.ON) {
                 Trace.comm.debugm("Shutting down connection " + connection);
             }
             try {
                 // shutdownConnection will send shutdown message.
                 connection.shutDownConnection(new ConnectionShutDownException(
-                        "Other End Requested Shutdown"));
+                  "Other End Requested Shutdown"));
                 connection.close();                 // Close TCP
-            } catch(IOException e) {
+            } catch (IOException e) {
                 Trace.comm.errorm("Error shutting down connection", e);
             }
             return;
@@ -88,12 +91,12 @@
             byte[] suspendID = new byte[is.readUnsignedShort()];
             is.read(suspendID);
             connection.handleSuspend(suspendID);
-        } catch(IOException e) {
+        } catch (IOException e) {
             Trace.comm.errorm("IOException reading suspendID", e);
             try {
                 connection.shutDownConnection();    // Will send shutdown message.
                 connection.close();                 // Close TCP
-            } catch(IOException e2) {
+            } catch (IOException e2) {
                 Trace.comm.errorm("Error shutting down connection", e2);
             }
         }



1.4       +9 -12     e/src/jsrc/net/vattp/data/TripleDESKeyConstructor.java

Index: TripleDESKeyConstructor.java
===================================================================
RCS file: /cvs/e/src/jsrc/net/vattp/data/TripleDESKeyConstructor.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- TripleDESKeyConstructor.java	2001/09/06 09:55:39	1.3
+++ TripleDESKeyConstructor.java	2001/11/10 19:40:37	1.4
@@ -1,4 +1,5 @@
 package net.vattp.data;
+
 /*
 This file contains only code created by Tyler Close, not a citizen or
 resident of the US.
@@ -23,11 +24,12 @@
  * Utility method for constructing a 3DES key from a Diffie-Hellman secret.
  */
 final
-class TripleDESKeyConstructor
-{
+  class TripleDESKeyConstructor {
+
     static private final String DIGEST_ALGORITHM_NAME = "MD5";
 
     static private final int DES_KEY_LENGTH = 8;
+
     static private final int TRIPLE_DES_KEY_LENGTH = 3 * DES_KEY_LENGTH;
 
     static private final int KEY_PAD_LENGTH = 16;
@@ -49,10 +51,8 @@
      * @see http://www.erights.org/doc/to-be-sorted/DataComm_startup.html
      */
     static
-    byte[] make(final byte[] dhSecret)
-    {
-        try
-        {
+      byte[] make(final byte[] dhSecret) {
+        try {
             final byte[] raw_key = new byte[TRIPLE_DES_KEY_LENGTH];
             final byte[] buffer = new byte[KEY_PAD_LENGTH];
             final MessageDigest md = MessageDigest.getInstance(DIGEST_ALGORITHM_NAME);
@@ -64,9 +64,7 @@
             md.update(buffer);
             System.arraycopy(md.digest(dhSecret), 0, raw_key, 2 * DES_KEY_LENGTH, DES_KEY_LENGTH);
             return raw_key;
-        }
-        catch(NoSuchAlgorithmException e)
-        {
+        } catch (NoSuchAlgorithmException e) {
             Trace.comm.errorm("Unable to build " + DIGEST_ALGORITHM_NAME, e);
             Trace.comm.notifyFatal();
         }
@@ -74,9 +72,8 @@
     }
 
     static private
-    void fill(final byte[] buffer, final byte value)
-    {
-        for(int i = buffer.length; i-- != 0;)
+      void fill(final byte[] buffer, final byte value) {
+        for (int i = buffer.length; i-- != 0;)
             buffer[i] = value;
     }
 }



1.3       +5 -1      e/src/jsrc/net/vattp/data/UserThread.java

Index: UserThread.java
===================================================================
RCS file: /cvs/e/src/jsrc/net/vattp/data/UserThread.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- UserThread.java	2001/09/06 09:55:39	1.2
+++ UserThread.java	2001/11/10 19:40:37	1.3
@@ -27,12 +27,15 @@
  *  @see ListenThread.startup()
  *  @see ListenThread.shutdown()
  */
-/*package*/class UserThread extends Thread {
+/*package*/
+class UserThread extends Thread {
+
     private Object myLock;
 
     UserThread(Object lock) {
         myLock = lock;
     }
+
     public void run() {
         synchronized (myLock) {
             try {
@@ -42,6 +45,7 @@
             }
         }
     }
+
     void setThreadName(String listenAddr) {
         setName("UserThread-" + listenAddr);
     }



1.7       +3 -2      e/src/jsrc/net/vattp/data/VatIdentity.java

Index: VatIdentity.java
===================================================================
RCS file: /cvs/e/src/jsrc/net/vattp/data/VatIdentity.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- VatIdentity.java	2001/10/02 23:38:31	1.6
+++ VatIdentity.java	2001/11/10 19:40:37	1.7
@@ -45,7 +45,8 @@
     static /*package*/ final String WHOEVER = "0";
 
     /** prevent instantiation */
-    private VatIdentity() {}
+    private VatIdentity() {
+    }
 
     /**
      * Make a new VatIdentity object.  Constructing this object will
@@ -87,7 +88,7 @@
 
         if (Trace.comm.debug && Trace.ON) {
             Trace.comm.debugm("calculated vat Id " + vid
-                        + " from PublicKey " + key);
+                              + " from PublicKey " + key);
         }
         return vid;
     }



1.2       +217 -203  e/src/jsrc/net/vattp/data/VatTPConnection.java

Index: VatTPConnection.java
===================================================================
RCS file: /cvs/e/src/jsrc/net/vattp/data/VatTPConnection.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- VatTPConnection.java	2001/10/02 01:29:18	1.1
+++ VatTPConnection.java	2001/11/10 19:40:37	1.2
@@ -64,7 +64,7 @@
     private /*nullOK*/ DataPath myIncomingDataPath;
 
     /** Array of MsgHandlers indexed by message type */
-    private MsgHandler[] myMsgHandlers = new MsgHandler[Msg.HIGH_MSG_TYPE+1];
+    private MsgHandler[] myMsgHandlers = new MsgHandler[Msg.HIGH_MSG_TYPE + 1];
 
     /** An enumeration of the places to search for the remote vat */
     private DynamicCollectionEnumeration mySiteSearch;
@@ -86,15 +86,15 @@
     private String myFlattenedRemoteSearchPath;
 
     /** The location the current DataPath are (to) (have been) speaking
-        to. */
+     to. */
     private String myRemoteAddr;
 
     /** The InetAddress of the remote end, or null if no connection has been
-        made */
+     made */
     private NetAddr myRemoteNetAddr = null;
 
     /** The InetAddress of the local end, or null if no connection has been
-        made */
+     made */
     private NetAddr myLocalNetAddr = null;
 
     /** The VatID of the other end of the connectiion. May be null. */
@@ -116,20 +116,27 @@
     /** The reason shutDownConnection has been called */
     private Throwable myShutdownReason = null;
 
-    static /*package*/ final byte STARTING   = 1;
-    static /*package*/ final byte RUNNING    = 2;
+    static /*package*/ final byte STARTING = 1;
+
+    static /*package*/ final byte RUNNING = 2;
+
     static /*package*/ final byte SUSPENDING = 3;
-    static /*package*/ final byte SUSPENDED  = 4;
-    static /*package*/ final byte RESUMING   = 5;
-    static /*package*/ final byte DIEING     = 6;
-    static /*package*/ final byte DEAD       = 7;
+
+    static /*package*/ final byte SUSPENDED = 4;
+
+    static /*package*/ final byte RESUMING = 5;
+
+    static /*package*/ final byte DIEING = 6;
+
+    static /*package*/ final byte DEAD = 7;
+
     /** The current state of this VatTPConnection */
     private byte myState;
 
     /** Place to queue outgoing messages while myState != RUNNING */
     private Vector myPendingOutput = null;
 
-        /** Place to accumulate the results of our search attempts */
+    /** Place to accumulate the results of our search attempts */
     private Vector myProblemAccumulator;
 
 
@@ -159,59 +166,58 @@
     // The following fields contain performance counters
 
     /** The total bytes of messages received over this VatTPConnection */
-    /*package*/ long bytesReceived          = 0;
+    /*package*/ long bytesReceived = 0;
 
     /** The total number of messages received over this VatTPConnection */
-    /*package*/ long messagesReceived       = 0;
+    /*package*/ long messagesReceived = 0;
 
     /** The size of the largest message received over this VatTPConnection */
-    /*package*/ int maxReceivedMessageSize  = 0;
+    /*package*/ int maxReceivedMessageSize = 0;
 
     /** The total bytes of messages sent over this VatTPConnection */
-    /*package*/ long bytesSent              = 0;
+    /*package*/ long bytesSent = 0;
 
     /** The total number of messages sent over this VatTPConnection */
-    /*package*/ long messagesSent           = 0;
+    /*package*/ long messagesSent = 0;
 
     /** The size of the largest message sent over this VatTPConnection */
-    /*package*/ int maxSentMessageSize      = 0;
+    /*package*/ int maxSentMessageSize = 0;
 
 
 
     /**
-             * Make a new VatTPConnection
-             *
-             * @param connMgr The VatTPMgr to notify of status
-             * changes.
-             *
-             * @param remoteVatID the vatID of the remote vat
-             *
-             * @param searchPath an array of Strings each of which is the IP address
-             * and port number of a place to look for the remote vat.  The IP address
-             * can be a DNS name or a dot repsentation of the 32 bit IP number.  Most
-             * commonly, the Strings will be the location of the Vat Location
-             * Servers (VLSs) with which the remote vat is believed to register.
-             *
-             * @param identityKeys is the KeyPair which defines the identity of this
-             * vat.
-             *
-             * @param runner is the Runner whose thread we use to synchronize calls
-             * into the VatTPConnection object from the SendThread and ReceiveThread
-             *
-             * @param localFlattenedSearchPath Is the search path we publish for
-             * references to us, flattened into a string.
-             *
-             * @param localSearchPath Is the search path we publish for references
-             * to us, with each element a separate String in an array.
-             */
+     * Make a new VatTPConnection
+     *
+     * @param connMgr The VatTPMgr to notify of status
+     * changes.
+     *
+     * @param remoteVatID the vatID of the remote vat
+     *
+     * @param searchPath an array of Strings each of which is the IP address
+     * and port number of a place to look for the remote vat.  The IP address
+     * can be a DNS name or a dot repsentation of the 32 bit IP number.  Most
+     * commonly, the Strings will be the location of the Vat Location
+     * Servers (VLSs) with which the remote vat is believed to register.
+     *
+     * @param identityKeys is the KeyPair which defines the identity of this
+     * vat.
+     *
+     * @param runner is the Runner whose thread we use to synchronize calls
+     * into the VatTPConnection object from the SendThread and ReceiveThread
+     *
+     * @param localFlattenedSearchPath Is the search path we publish for
+     * references to us, flattened into a string.
+     *
+     * @param localSearchPath Is the search path we publish for references
+     * to us, with each element a separate String in an array.
+     */
     /*package*/ VatTPConnection(VatTPMgr connMgr,
-                               String remoteVatID,
-                               String flattenedRemoteSearchPath,
-                               KeyPair identityKeys,
-                               String localVatID,
-                               Runner runner,
-                               String localFlattenedSearchPath)
-    {
+                                String remoteVatID,
+                                String flattenedRemoteSearchPath,
+                                KeyPair identityKeys,
+                                String localVatID,
+                                Runner runner,
+                                String localFlattenedSearchPath) {
         myConnMgr = connMgr;
         myRemoteVatID = remoteVatID;
         myIsIncoming = false;
@@ -224,15 +230,15 @@
         //Save to resume the connection
         myFlattenedRemoteSearchPath = flattenedRemoteSearchPath;
         //Make a list of locations to try for the new connection
-            // myFirstAddressToTry will always be "" here.
+        // myFirstAddressToTry will always be "" here.
         DynamicCollection searchCollection
-                    = new DynamicCollection(
-                        EARL.parseSearchPath(myFlattenedRemoteSearchPath));
+          = new DynamicCollection(
+            EARL.parseSearchPath(myFlattenedRemoteSearchPath));
         mySiteSearch = searchCollection.elems();
         myAddressesTried = new Hashtable(1);
 
         // Make a place to keep the search results
-        myProblemAccumulator  = new Vector(1,1);
+        myProblemAccumulator = new Vector(1, 1);
         // Start the search for the remote ID.
         tryNextAddress();
         if (Trace.comm.usage && Trace.ON) {
@@ -241,41 +247,41 @@
     }
 
     /**
-             * Make a new VatTPConnection for an incoming connection
-             *
-             * @param connMgr The VatTPMgr to notify of status
-             * changes.
-             *
-             * @param identityKeys is the KeyPair which defines the identity of this
-             * vat.
-             *
-             * @param localVatID is the vatID of the local vat.
-             *
-             * @param runner is the Runner whose thread we use to synchronize calls
-             * into the VatTPConnection object from the SendThread and ReceiveThread
-             *
-             * @param remoteVatID is the vatID of the remote vat.
-             *
-             * @param path The DataPath object controlling the TCP connection.
-             *
-             * @param localFlattenedSearchPath Is the search path we publish for
-             * references to us, flattened into a string.
-             *
-             * @param localSearchPath Is the search path we publish for references
-             * to us, with each element a separate String in an array.
-             *
-             * @param isIncoming is true if this connection is an incoming connection,
-             *        otherwise false.
-             */
+     * Make a new VatTPConnection for an incoming connection
+     *
+     * @param connMgr The VatTPMgr to notify of status
+     * changes.
+     *
+     * @param identityKeys is the KeyPair which defines the identity of this
+     * vat.
+     *
+     * @param localVatID is the vatID of the local vat.
+     *
+     * @param runner is the Runner whose thread we use to synchronize calls
+     * into the VatTPConnection object from the SendThread and ReceiveThread
+     *
+     * @param remoteVatID is the vatID of the remote vat.
+     *
+     * @param path The DataPath object controlling the TCP connection.
+     *
+     * @param localFlattenedSearchPath Is the search path we publish for
+     * references to us, flattened into a string.
+     *
+     * @param localSearchPath Is the search path we publish for references
+     * to us, with each element a separate String in an array.
+     *
+     * @param isIncoming is true if this connection is an incoming connection,
+     *        otherwise false.
+     */
     /*package*/ VatTPConnection(VatTPMgr connMgr,
-                               KeyPair identityKeys,
-                               String localVatID,
-                               Runner runner,
-                               String remoteVatID,
-                               DataPath path,
-                               String localFlattenedSearchPath,
-                               boolean isIncoming)
-    throws IOException {
+                                KeyPair identityKeys,
+                                String localVatID,
+                                Runner runner,
+                                String remoteVatID,
+                                DataPath path,
+                                String localFlattenedSearchPath,
+                                boolean isIncoming)
+      throws IOException {
         myConnMgr = connMgr;
         myIsIncoming = isIncoming;
         myIdentityKeys = identityKeys;
@@ -285,7 +291,7 @@
         myLocalFlattenedSearchPath = localFlattenedSearchPath;
         myState = STARTING;
         // Make a place to keep the search results
-        myProblemAccumulator  = new Vector(1,1);
+        myProblemAccumulator = new Vector(1, 1);
         connectPath(path, remoteVatID, isIncoming);
         if (Trace.comm.event && Trace.ON) {
             Trace.comm.eventm("VatTPConnection constructor done " + this);
@@ -307,30 +313,30 @@
     }
 
     /**
-         * Connect a DataPath object for an incoming connection to an existing
-         * VatTPConnection object.  This call is where we first know that there
-         * is a crossed connection problem.
-         *
-         * @param incomingPath is the DataPath object for the incoming connection.
-         * @param remoteVatID is the vatID of the remote vat.
-         * @param isIncoming is true if the DataPath represents an incoming TCP
-         *        connection, is false if it is an outgoing TCP connection.
-         * @return  LIVES_CONTINUE - Continue setting up this connection
-         * <br>     LIVES_DUP - This connection is a duplicate, discard it.
-         * <br>     LIVES_NOTIFY - Notify the other end of a duplicate connection.
-         *                         The other end must decide which connection to keep.
-         */
+     * Connect a DataPath object for an incoming connection to an existing
+     * VatTPConnection object.  This call is where we first know that there
+     * is a crossed connection problem.
+     *
+     * @param incomingPath is the DataPath object for the incoming connection.
+     * @param remoteVatID is the vatID of the remote vat.
+     * @param isIncoming is true if the DataPath represents an incoming TCP
+     *        connection, is false if it is an outgoing TCP connection.
+     * @return  LIVES_CONTINUE - Continue setting up this connection
+     * <br>     LIVES_DUP - This connection is a duplicate, discard it.
+     * <br>     LIVES_NOTIFY - Notify the other end of a duplicate connection.
+     *                         The other end must decide which connection to keep.
+     */
     /*package*/ int connectPath(DataPath incomingPath,
-                    String remoteVatID, boolean isIncoming)
-                throws IOException {
+                                String remoteVatID, boolean isIncoming)
+      throws IOException {
         int ret;    // Our return value
 
         Assertion.test(remoteVatID.equals(myRemoteVatID), "Wrong VatTPConnection\n  "
-                + this + "\n  " + incomingPath + "\n  " + remoteVatID);
+                       + this + "\n  " + incomingPath + "\n  " + remoteVatID);
         if (null == myDataPath) {
             myDataPath = incomingPath;
             myFlattenedRemoteSearchPath
-                    = myDataPath.connectConnection(this, myProtocolParms);
+              = myDataPath.connectConnection(this, myProtocolParms);
             if (SUSPENDED == myState) myState = RESUMING;
             return VatTPMgr.LIVES_CONTINUE;  //New path is only one
         }
@@ -344,30 +350,30 @@
         } else if (StartUpProtocol.ST_EXPECT_MESSAGE == outState) {
             if (Trace.comm.debug && Trace.ON) {
                 Trace.comm.debugm("Killing incoming\n  " + incomingPath
-                                + "\n  in favor of\n  " + myDataPath);
+                                  + "\n  in favor of\n  " + myDataPath);
             }
             ret = VatTPMgr.LIVES_DUP;    //Outgoing is too far along.
-        } else if (0 < myRemoteVatID.compareTo(myLocalVatID) ) {
+        } else if (0 < myRemoteVatID.compareTo(myLocalVatID)) {
             // The far end is in charge
             ret = VatTPMgr.LIVES_NOTIFY;
             myIncomingDataPath = incomingPath;
             myFlattenedRemoteSearchPath
-                    = myIncomingDataPath.connectConnection(this, myProtocolParms);
-       } else {
+              = myIncomingDataPath.connectConnection(this, myProtocolParms);
+        } else {
             // We must decide.  Outbound not EXPECT_GOTO or EXPECT_MESSAGE,
             // That means we keep the incoming and stop the outgoing.
             if (Trace.comm.debug && Trace.ON) {
                 Trace.comm.debugm("Killing outgoing\n  " + myDataPath
-                                + "\n  in favor of\n  " + incomingPath);
+                                  + "\n  in favor of\n  " + incomingPath);
             }
             myDataPath.stopStartUpProtocol();
             myDataPath = incomingPath;
             myFlattenedRemoteSearchPath
-                    = myDataPath.connectConnection(this, myProtocolParms);
+              = myDataPath.connectConnection(this, myProtocolParms);
             ret = VatTPMgr.LIVES_CONTINUE;
         }
         if (Trace.comm.debug && Trace.ON) {
-            Trace.comm.debugm("Returning "+ ret + " for " + incomingPath);
+            Trace.comm.debugm("Returning " + ret + " for " + incomingPath);
         }
         return ret;
     }
@@ -478,10 +484,10 @@
         return myRemoteVatID;
     }
     /** Get the state of this VatTPConnection.
-         *
-         * @return is the current state (STARTING, RUNNING, DIEING etc.) of this
-         *          VatTPConnection object.
-         */
+     *
+     * @return is the current state (STARTING, RUNNING, DIEING etc.) of this
+     *          VatTPConnection object.
+     */
     /*package*/ int getState() {
         return myState;
     }
@@ -492,7 +498,7 @@
     private void handleConnectionDeath(Throwable reason) {
         myState = DEAD;         // Tell referencers to allow garbage collection
         myConnMgr.deathNotification(this);
-        for (int i=0; i<myMsgHandlers.length; i++) {
+        for (int i = 0; i < myMsgHandlers.length; i++) {
             MsgHandler h = myMsgHandlers[i];
             if (null != h) {
                 if (Trace.comm.event && Trace.ON) {
@@ -560,7 +566,7 @@
                 return true;        //Incoming is too far along.
             } else if (StartUpProtocol.ST_EXPECT_MESSAGE == inState) {
                 Trace.comm.errorm("Incoming running, why are we chosing?"
-                        + " IncomingState=" + inState);
+                                  + " IncomingState=" + inState);
                 myDataPath.stopStartUpProtocol();
                 myDataPath = myIncomingDataPath;
                 myIncomingDataPath = null;
@@ -594,19 +600,23 @@
             }
         }
         StringBuffer connectStatusReport = new StringBuffer(300);
-        for (int i=0; i<myProblemAccumulator.size(); i++) {
+        for (int i = 0; i < myProblemAccumulator.size(); i++) {
             Object problem = myProblemAccumulator.elementAt(i);
             if (problem instanceof String) {
                 connectStatusReport.append(problem).append('\n');
             } else {
-                Throwable evt = (Throwable) problem;
+                Throwable evt = (Throwable)problem;
                 String subMsg = evt.getMessage();
-                if (evt instanceof NoRouteToHostException) ;
-                else if (evt instanceof UnknownHostException) ;
+                if (evt instanceof NoRouteToHostException)
+                    ;
+                else if (evt instanceof UnknownHostException)
+                    ;
                 else if (evt instanceof ConnectException
-                    && (subMsg.startsWith("Connection refused"))) ;
+                  && (subMsg.startsWith("Connection refused")))
+                    ;
                 else if (evt instanceof SocketException
-                    && (subMsg.startsWith("Connection reset by peer"))) ;
+                  && (subMsg.startsWith("Connection reset by peer")))
+                    ;
                 else {
                     Trace.comm.errorm("Error during connection attempt", evt);
                 }
@@ -639,8 +649,8 @@
             if (null != handler) {
                 if (Trace.comm.event && Trace.ON) {
                     Trace.comm.eventm(this + " calls processMessage in "
-                            + handler + "\n"
-                            + HexStringUtils.byteArrayToReadableHexString(message));
+                                      + handler + "\n"
+                                      + HexStringUtils.byteArrayToReadableHexString(message));
                 }
                 handler.processMessage(message, this);
                 return;
@@ -649,7 +659,7 @@
             if (DIEING == myState || DEAD == myState) return;
         }
         Trace.comm.errorm("No handler for incoming message type\n"
-                    + HexStringUtils.byteArrayToReadableHexString(message));
+                          + HexStringUtils.byteArrayToReadableHexString(message));
     }
 
     /**
@@ -669,7 +679,7 @@
             case STARTING:
                 if (Trace.comm.debug && Trace.ON) {
                     Trace.comm.debugm("accumulating problem report: "
-                                + this + ": ", problem);
+                                      + this + ": ", problem);
                 }
                 recordConnectionFailure(problem);
                 break;
@@ -695,7 +705,7 @@
         if (null != suspendID) {
             if (null == myLocalSuspendID) return false;
             if (myLocalSuspendID.length != suspendID.length) return false;
-            for (int i=0; i<suspendID.length; i++) {
+            for (int i = 0; i < suspendID.length; i++) {
                 if (myLocalSuspendID[i] != suspendID[i]) return false;
             }
             return true;
@@ -747,24 +757,24 @@
      */
 
     public void registerMsgHandler(byte msgType, MsgHandler handler)
-    throws IOException {
+      throws IOException {
         if (!myRunner.isCurrentThreadInVat()) {
             Trace.comm.errorm("Caller doesn't hold vat lock", new Throwable());
         }
         if (Trace.comm.event && Trace.ON) {
-            Trace.comm.eventm("registerMsgHandler="+ msgType +"("
-                    + handler +") on " + this);
+            Trace.comm.eventm("registerMsgHandler=" + msgType + "("
+                              + handler + ") on " + this);
         }
         Assertion.test(msgType > 0 || msgType <= Msg.HIGH_MSG_TYPE,
-            "msgType=" + msgType + " out of range (1 .. " + Msg.HIGH_MSG_TYPE
-            + ")");
-        Assertion.test( STARTING == myState || RESUMING == myState,
-            "Called after the NewConnectionReactor returns\n  handler="
-                    + handler + "\n  myState=" + myState);
+                       "msgType=" + msgType + " out of range (1 .. " + Msg.HIGH_MSG_TYPE
+                       + ")");
+        Assertion.test(STARTING == myState || RESUMING == myState,
+                       "Called after the NewConnectionReactor returns\n  handler="
+                       + handler + "\n  myState=" + myState);
         if (null != myMsgHandlers[msgType]
-                    && myMsgHandlers[msgType] != handler) {
+          && myMsgHandlers[msgType] != handler) {
             throw new IOException(myMsgHandlers[msgType]
-                    + " already registered for msgType=" + msgType);
+                                  + " already registered for msgType=" + msgType);
         }
         myMsgHandlers[msgType] = handler;
     }
@@ -776,7 +786,7 @@
      * @param continuation The notification passed to sendMessage.
      */
     /*package*/ void sendFinished(int count, int length,
-                StreamMessage /*NullOK*/ msg) {
+                                  StreamMessage /*NullOK*/ msg) {
         bytesSent += length;
         messagesSent += count;
         if (maxSentMessageSize < length) maxSentMessageSize = length;
@@ -808,20 +818,21 @@
         }
         if (Trace.comm.event && Trace.ON) {
             Trace.comm.eventm("sendMsg on " + this + "\n"
-                    + HexStringUtils.byteArrayToReadableHexString(message));
+                              + HexStringUtils.byteArrayToReadableHexString(message));
         }
         if (message.length > Msg.MAX_OUTBOUND_MSG_LENGTH) {
             throw new IOException("Outbound message length=" + message.length
                                   + " greater than limit="
                                   + Msg.MAX_OUTBOUND_MSG_LENGTH);
         }
-        if (Trace.comm.debug && Trace.ON) Trace.comm.debugm("enqueueing to "
-                + myRemoteAddr
-                + "\n" + HexStringUtils.byteArrayToReadableHexString(message));
+        if (Trace.comm.debug && Trace.ON)
+            Trace.comm.debugm("enqueueing to "
+                              + myRemoteAddr
+                              + "\n" + HexStringUtils.byteArrayToReadableHexString(message));
         int msgType = message[0] & 0xff;
         if (msgType > Msg.HIGH_MSG_TYPE || null == myMsgHandlers[msgType]) {
             throw new IOException("No MsgHandler registered for message type="
-                        + msgType);
+                                  + msgType);
         }
         enqueue(message);
     }
@@ -860,21 +871,22 @@
         }
         if (Trace.comm.event && Trace.ON) {
             Trace.comm.eventm("sendMsg, Notify=" + notification + " Runner="
-                    + placeToRun + " on " + this + "\n"
-                    + HexStringUtils.byteArrayToReadableHexString(message));
+                              + placeToRun + " on " + this + "\n"
+                              + HexStringUtils.byteArrayToReadableHexString(message));
         }
         if (message.length > Msg.MAX_OUTBOUND_MSG_LENGTH) {
             throw new IOException("Outbound message length=" + message.length
                                   + " greater than limit="
                                   + Msg.MAX_OUTBOUND_MSG_LENGTH);
         }
-        if (Trace.comm.debug && Trace.ON) Trace.comm.debugm("enqueueing to "
-                + myRemoteAddr
-                + "\n" + HexStringUtils.byteArrayToReadableHexString(message));
+        if (Trace.comm.debug && Trace.ON)
+            Trace.comm.debugm("enqueueing to "
+                              + myRemoteAddr
+                              + "\n" + HexStringUtils.byteArrayToReadableHexString(message));
         int msgType = message[0] & 0xff;
         if (msgType > Msg.HIGH_MSG_TYPE || null == myMsgHandlers[msgType]) {
             throw new IOException("No MsgHandler registered for message type="
-                        + msgType);
+                                  + msgType);
         }
         enqueue(new StreamMessage(message, notification, placeToRun));
     }
@@ -914,7 +926,7 @@
         }
         Assertion.test(null != reason, "Must provide a reason for shutdown");
         if (RUNNING == myState) {
-            myDataPath.enqueue(new byte[] {Msg.SUSPEND});
+            myDataPath.enqueue(new byte[]{Msg.SUSPEND});
             myState = DIEING;
             myConnMgr.enterHospice(this, myRemoteVatID);
             myShutdownReason = reason;
@@ -939,24 +951,25 @@
             if (Trace.comm.usage && Trace.ON) {
                 Trace.comm.usagem("connection suspended " + this);
             }
-            if (null != myPendingOutput) {  // If we have pending output
+            if (null != myPendingOutput) {
+                // If we have pending output
                 startResume();      // try to resume
             }
         } else {
             Throwable rr = (reason instanceof ConnectionShutDownException
-                            && null != myShutdownReason)
-                    ? myShutdownReason
-                    : reason;
+              && null != myShutdownReason)
+              ? myShutdownReason
+              : reason;
             if (Trace.comm.usage && Trace.ON) {
                 if (Trace.comm.event) {
                     Trace.comm.eventm(
-                        "Connection died " + this
-                        + "\n" + myConnMgr.toString()
-                        + "\n" + rr);
+                      "Connection died " + this
+                      + "\n" + myConnMgr.toString()
+                      + "\n" + rr);
                 } else {
                     Trace.comm.usagem(
-                        "Connection died " + myRemoteAddr + "|"
-                        + myRemoteVatID + "\n" + rr);
+                      "Connection died " + myRemoteAddr + "|"
+                      + myRemoteVatID + "\n" + rr);
                 }
             }
             handleConnectionDeath(rr);
@@ -974,15 +987,15 @@
         myState = RESUMING;
         //Make a list of locations to try for the new connection
         String path = (myFirstAddressToTry.equals("")
-                    ? myFlattenedRemoteSearchPath
-                    : myFirstAddressToTry + ";" + myFlattenedRemoteSearchPath);
+          ? myFlattenedRemoteSearchPath
+          : myFirstAddressToTry + ";" + myFlattenedRemoteSearchPath);
         DynamicCollection searchCollection
-            = new DynamicCollection(EARL.parseSearchPath(path));
+          = new DynamicCollection(EARL.parseSearchPath(path));
         mySiteSearch = searchCollection.elems();
         myAddressesTried = new Hashtable(1);
 
         // Make a place to keep the search results
-        myProblemAccumulator  = new Vector(1,1);
+        myProblemAccumulator = new Vector(1, 1);
         // Start the search for the remote ID.
         tryNextAddress();
     }
@@ -1004,21 +1017,20 @@
      *          protocol versions and authorization parameters for the connection.
      */
     /*package*/ void startupSuccessful(
-                DataPath path,
-                String remoteVatID,
-                NetAddr remoteNetAddr,
-                NetAddr localNetAddr,
-                int remotePort,
-                AuthSecrets authParms)
-     {
+      DataPath path,
+      String remoteVatID,
+      NetAddr remoteNetAddr,
+      NetAddr localNetAddr,
+      int remotePort,
+      AuthSecrets authParms) {
         Assertion.test(myRemoteVatID.equals(remoteVatID),
-                      "DataPath's remote vatID=", remoteVatID,
-                      " not equal my remote vatID=", myRemoteVatID);
+                       "DataPath's remote vatID=", remoteVatID,
+                       " not equal my remote vatID=", myRemoteVatID);
         myProtocolParms = authParms;
         //it's safe to not check optInetAddress() for null, since
         //remoteNetAddr must explicitly have one
         myRemoteAddr = remoteNetAddr.optInetAddress().getHostAddress() + ":"
-                        + remoteNetAddr.getPort();
+          + remoteNetAddr.getPort();
         myRemoteNetAddr = remoteNetAddr;
         myLocalNetAddr = localNetAddr;
         if (null != myIncomingDataPath) {
@@ -1028,17 +1040,18 @@
                 myDataPath = myIncomingDataPath;
             } else {
                 Assertion.test(path == myDataPath, path.toString(), "\n",
-                                myDataPath.toString());
+                               myDataPath.toString());
                 myIncomingDataPath.stopStartUpProtocol();
             }
             myIncomingDataPath = null;
         }
-        if (remotePort > 0) {   // We know where to retry to resume later
+        if (remotePort > 0) {
+            // We know where to retry to resume later
             //it's safe to not check optInetAddress() for null, since
             //remoteNetAddr must explicitly have one
             myFirstAddressToTry
-                    = remoteNetAddr.optInetAddress().getHostAddress()
-                        + ":" + remotePort;
+              = remoteNetAddr.optInetAddress().getHostAddress()
+              + ":" + remotePort;
         }
         if (RESUMING == myState) {
             if (Trace.comm.debug && Trace.ON) {
@@ -1053,15 +1066,16 @@
             }
         }
         myConnMgr.startupSuccessful(this,
-                    myRemoteVatID, RESUMING == myState);
+                                    myRemoteVatID, RESUMING == myState);
         myState = RUNNING;
-        if (null != myShutdownReason) { // Someone has asked to shut down
+        if (null != myShutdownReason) {
+            // Someone has asked to shut down
             shutDownConnection(myShutdownReason);
             return;
         }
         myProblemAccumulator = null;
         if (null != myPendingOutput) {
-            for (int i=0; i<myPendingOutput.size(); i++) {
+            for (int i = 0; i < myPendingOutput.size(); i++) {
                 myDataPath.enqueue(myPendingOutput.elementAt(i));
             }
             myPendingOutput = null;
@@ -1085,8 +1099,8 @@
         }
         if (RUNNING != myState) {
             throw new IOException(
-                    "Attempt to suspend a non-running connection, state="
-                    + myState);
+              "Attempt to suspend a non-running connection, state="
+              + myState);
         }
         myLocalSuspendID = new byte[20];
 
@@ -1096,8 +1110,8 @@
         entropy.nextBytes(myLocalSuspendID);
         if (Trace.comm.debug && Trace.ON) {
             Trace.comm.debugm("Suspend Connection " + this
-                    + HexStringUtils.byteArrayToReadableHexString(
-                            myLocalSuspendID));
+                              + HexStringUtils.byteArrayToReadableHexString(
+                                myLocalSuspendID));
         }
         ByteArrayOutputStream baos = new ByteArrayOutputStream();
         DataOutputStream os = new DataOutputStream(baos);
@@ -1114,23 +1128,23 @@
      * Describe this connection object.
      *
      */
-     public String toString() {
+    public String toString() {
         return super.toString() + "\n  to " + myRemoteAddr + "|"
-                    + myRemoteVatID
-                    + "\n  searchpath=" + myFlattenedRemoteSearchPath
-                    + " state=" + myState;
-     }
+          + myRemoteVatID
+          + "\n  searchpath=" + myFlattenedRemoteSearchPath
+          + " state=" + myState;
+    }
 
     /**
      * Start an attempt to connect to the next (first) address in the list
      * of addresses to try.
      */
-    private void tryNextAddress () {
+    private void tryNextAddress() {
         if (null != mySiteSearch && mySiteSearch.hasMoreElements()) {
-            myRemoteAddr = (String) mySiteSearch.nextElement();
+            myRemoteAddr = (String)mySiteSearch.nextElement();
 
             //Build a DataPath to try the connection.
-            myDataPath = new DataPath(null,  // No VatTPMgr.
+            myDataPath = new DataPath(null, // No VatTPMgr.
                                       this,
                                       myRemoteVatID,
                                       myRemoteAddr,
@@ -1145,8 +1159,8 @@
             String report = makeConnectionStatusReport();
             if (Trace.comm.usage && Trace.ON) {
                 Trace.comm.usagem(toString()
-                        + "\nConnection attempt failed, search path exhausted\n"
-                        + report);
+                                  + "\nConnection attempt failed, search path exhausted\n"
+                                  + report);
             }
             handleConnectionDeath(new IOException(report));
         }
@@ -1168,23 +1182,23 @@
      * @see MsgHandler
      */
 
-    /*package*/ void unRegisterMsgHandler (byte msgType, MsgHandler handler)
-                        throws IOException {
+    /*package*/ void unRegisterMsgHandler(byte msgType, MsgHandler handler)
+      throws IOException {
         if (!myRunner.isCurrentThreadInVat()) {
             Trace.comm.errorm("Caller doesn't hold vat lock", new Throwable());
         }
         if (Trace.comm.event && Trace.ON) {
-            Trace.comm.eventm("unRegisterMsgHandler="+ msgType +"("
-                    + handler +") on " + this);
+            Trace.comm.eventm("unRegisterMsgHandler=" + msgType + "("
+                              + handler + ") on " + this);
         }
         if (msgType <= 0 || msgType > Msg.HIGH_MSG_TYPE) {
-            Trace.comm.errorm("msgType=" + msgType +" out of range (1 .. "
-                                  + Msg.HIGH_MSG_TYPE);
+            Trace.comm.errorm("msgType=" + msgType + " out of range (1 .. "
+                              + Msg.HIGH_MSG_TYPE);
             Trace.comm.notifyFatal();
         }
         if (handler != myMsgHandlers[msgType]) {
             throw new IOException("Registered=" + myMsgHandlers[msgType]
-                    + " is not the same as " + handler + " for msgType=" + msgType);
+                                  + " is not the same as " + handler + " for msgType=" + msgType);
         }
         myMsgHandlers[msgType] = null;
     }



1.25      +10 -10    e/src/jsrc/org/erights/build/EYaccFixer.java

Index: EYaccFixer.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/build/EYaccFixer.java,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -r1.24 -r1.25
--- EYaccFixer.java	2001/09/06 09:55:43	1.24
+++ EYaccFixer.java	2001/11/10 19:40:38	1.25
@@ -34,21 +34,21 @@
 public class EYaccFixer {
 
     static /*package*/ final SimpleQuasiParser QParser =
-        SimpleQuasiParser.THE_ONE;
+      SimpleQuasiParser.THE_ONE;
 
     static private final MatchMaker ParseQPatt =
-    QParser.matchMaker(Twine.fromString(
+      QParser.matchMaker(Twine.fromString(
         "@{0}\n" +
         "final static short yytable[] = {@{1}};\n" +
         "final static short yycheck[] = {@{2}};\n" +
         "@{3}int yyparse()@{4}"
-    ));
+      ));
 
     static private final String rName
-        = "org/erights/e/elang/syntax/ParserTables.data";
+      = "org/erights/e/elang/syntax/ParserTables.data";
 
     static private final ValueMaker ParseQExpr =
-    QParser.valueMaker(Twine.fromString(
+      QParser.valueMaker(Twine.fromString(
         "// Fixed by EYaccFixer to meet jvm size limits\n" +
         "${0}\n\n" +
         "//These two tables are not statically initialized, but rather\n" +
@@ -62,7 +62,7 @@
         "        return;\n" +
         "    }\n" +
         "    try {\n" +
-        "        String rName = \""+ rName + "\";\n" +
+        "        String rName = \"" + rName + "\";\n" +
         "        InputStream inp = ClassLoader.getSystemResourceAsStream(rName);\n" +
         "        if (null == inp) {\n" +
         "            throw new RuntimeException(rName + \" not found\");\n" +
@@ -80,7 +80,7 @@
         "    }\n" +
         "}\n\n" +
         "${3}int yyparse() ${4}"
-    ));
+      ));
 
     /**
      * Used to make sure that the tables read in to the transformed parser
@@ -105,7 +105,7 @@
         FlexList result = FlexList.fromType(Short.TYPE, 1000);
         int len = numbers.length();
         int i = 0;
-        while (i < len && ! Character.isDigit(numbers.charAt(i))) {
+        while (i < len && !Character.isDigit(numbers.charAt(i))) {
             i++;
         }
         while (i < len) {
@@ -118,7 +118,7 @@
                 throw new ArithmeticException("Must be a positive short");
             }
             result.push(new Short((short)num));
-            while (i < len && ! Character.isDigit(numbers.charAt(i))) {
+            while (i < len && !Character.isDigit(numbers.charAt(i))) {
                 i++;
             }
         }
@@ -135,7 +135,7 @@
         }
 
         File parseFile = new File(args[0], "EParser.java");
-        File dataFile  = new File(args[1], rName);
+        File dataFile = new File(args[1], rName);
         File dataDir = new File(dataFile.getParent());
         dataDir.mkdirs();
 



1.10      +196 -196  e/src/jsrc/org/erights/e/develop/assertion/Assertion.java

Index: Assertion.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/develop/assertion/Assertion.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- Assertion.java	2001/09/06 09:55:43	1.9
+++ Assertion.java	2001/11/10 19:40:38	1.10
@@ -59,201 +59,201 @@
  * assertions.
  * @see AssertionFailed
  */
-public class Assertion
-{
-  static private final String prefix = "Internal program error: ";
-
-  /*
-   * This variable is used to discourage a java compiler from inlining
-   * an assertion.  An inlined assertion would prevent the unasserter
-   * from working.
-   * I can't offhand think of a way to *prevent* inlining.
-   */
-  static private boolean preventInlining = false;
-
-  /**
-   * If this method is executed, it throws an AssertionFailed with the
-   * message "Internal program error:  'Unreachable' code was reached."  Plant
-   * such assertions in places the program should never reach (such as
-   * the default case in a switch).
-   */
-  static public void fail() throws AssertionFailed {
-    if (preventInlining) fail();
-    throw new AssertionFailed(prefix + "'Unreachable' code was reached.");
-  }
-
-  /**
-   * If this method is executed, it throws an AssertionFailed with the
-   * given explanation, prefixed by "Internal program error: ".
-   */
-  static public void fail(String explanation) throws AssertionFailed {
-    if (preventInlining) fail(explanation);
-    throw new AssertionFailed(prefix + explanation);
-  }
-
-  /**
-   * If the argument is false, throws an AssertionFailed with the message
-   * "Internal program error: Assertion failed."
-   */
-  static public void test(boolean mustBeTrue) throws AssertionFailed {
-    if (mustBeTrue == false) {
-      throw new AssertionFailed(prefix + "Assertion failed.");
-    }
-    if (preventInlining) test(!mustBeTrue);
-  }
-
-  /**
-   * If the argument is false, throws an AssertionFailed with the
-   * given explanation arguments, concatenated as strings and prefixed
-   * by "Internal program error: ".
-   * <p> Use this routine when you need to avoid paying the overhead of
-   * string concatenation ("+") on every test.  It does the concatenation
-   * only if the test fails.
-   */
-  static public void test(boolean mustBeTrue, Object explanation0,
-                          Object explanation1)
-       throws AssertionFailed {
-    if (mustBeTrue == false) {
-      throw new AssertionFailed(prefix + explanation0 + explanation1);
-    }
-    if (preventInlining) test(!mustBeTrue);
-  }
-
-  /**
-   * If the argument is false, throws an AssertionFailed with the
-   * given explanation arguments, concatenated as strings and prefixed
-   * by "Internal program error: ".
-   * <p> Use this routine when you need to avoid paying the overhead of
-   * string concatenation ("+") on every test.  It does the concatenation
-   * only if the test fails.
-   */
-  static public void test(boolean mustBeTrue, Object explanation0,
-                          Object explanation1, Object explanation2)
-       throws AssertionFailed {
-    if (mustBeTrue == false) {
-      throw new AssertionFailed(prefix + explanation0 +
-                                explanation1 + explanation2);
-    }
-    if (preventInlining) test(!mustBeTrue);
-  }
-
-  /**
-   * If the argument is false, throws an AssertionFailed with the
-   * given explanation arguments, concatenated as strings and prefixed
-   * by "Internal program error: ".
-   * <p> Use this routine when you need to avoid paying the overhead of
-   * string concatenation ("+") on every test.  It does the concatenation
-   * only if the test fails.
-   */
-  static public void test(boolean mustBeTrue, Object explanation0,
-                          Object explanation1, Object explanation2,
-                          Object explanation3)
-       throws AssertionFailed {
-    if (mustBeTrue == false) {
-      throw new AssertionFailed(prefix + explanation0 +
-                                explanation1 + explanation2 +
-                                explanation3);
-    }
-    if (preventInlining) test(!mustBeTrue);
-  }
-
-  /**
-   * If the argument is false, throws an AssertionFailed with the
-   * given explanation arguments, concatenated as strings and prefixed
-   * by "Internal program error: ".
-   * <p> Use this routine when you need to avoid paying the overhead of
-   * string concatenation ("+") on every test.  It does the concatenation
-   * only if the test fails.
-   */
-  static public void test(boolean mustBeTrue, Object explanation0,
-                          Object explanation1, Object explanation2,
-                          Object explanation3, Object explanation4)
-       throws AssertionFailed {
-    if (mustBeTrue == false) {
-      throw new AssertionFailed(prefix + explanation0 +
-                                explanation1 + explanation2 +
-                                explanation3 + explanation4);
-    }
-    if (preventInlining) test(!mustBeTrue);
-  }
-
-  /**
-   * If the argument is false, throws an AssertionFailed with the
-   * given explanation arguments, concatenated as strings and prefixed
-   * by "Internal program error: ".
-   * <p> Use this routine when you need to avoid paying the overhead of
-   * string concatenation ("+") on every test.  It does the concatenation
-   * only if the test fails.
-   */
-  static public void test(boolean mustBeTrue, Object explanation0,
-                          Object explanation1, Object explanation2,
-                          Object explanation3, Object explanation4,
-                          Object explanation5)
-       throws AssertionFailed {
-    if (mustBeTrue == false) {
-      throw new AssertionFailed(prefix + explanation0 +
-                                explanation1 + explanation2 +
-                                explanation3 + explanation4 +
-                                explanation5);
-    }
-    if (preventInlining) test(!mustBeTrue);
-  }
-
-  /**
-   * If the argument is false, throws an AssertionFailed with the
-   * given explanation arguments, concatenated as strings and prefixed
-   * by "Internal program error: ".
-   * <p> Use this routine when you need to avoid paying the overhead of
-   * string concatenation ("+") on every test.  It does the concatenation
-   * only if the test fails.
-   */
-  static public void test(boolean mustBeTrue, Object explanation0,
-                          Object explanation1, Object explanation2,
-                          Object explanation3, Object explanation4,
-                          Object explanation5, Object explanation6)
-       throws AssertionFailed {
-    if (mustBeTrue == false) {
-      throw new AssertionFailed(prefix + explanation0 +
-                                explanation1 + explanation2 +
-                                explanation3 + explanation4 +
-                                explanation5 + explanation6);
-    }
-    if (preventInlining) test(!mustBeTrue);
-  }
-
-  /**
-   * If the argument is false, throws an AssertionFailed with the
-   * given explanation arguments, concatenated as strings and prefixed
-   * by "Internal program error: ".
-   * <p> Use this routine when you need to avoid paying the overhead of
-   * string concatenation ("+") on every test.  It does the concatenation
-   * only if the test fails.
-   */
-  static public void test(boolean mustBeTrue, Object explanation0,
-                          Object explanation1, Object explanation2,
-                          Object explanation3, Object explanation4,
-                          Object explanation5, Object explanation6,
-                          Object explanation7)
-       throws AssertionFailed {
-    if (mustBeTrue == false) {
-      throw new AssertionFailed(prefix + explanation0 +
-                                explanation1 + explanation2 +
-                                explanation3 + explanation4 +
-                                explanation5 + explanation6 +
-                                explanation7);
-    }
-    if (preventInlining) test(!mustBeTrue);
-  }
-
-  /**
-   * If the argument is false, throws an AssertionFailed with the
-   * given explanation, prefixed by "Internal program error: ".
-   */
-  static public void test(boolean mustBeTrue, String explanation)
-       throws AssertionFailed {
-    if (mustBeTrue == false) {
-      throw new AssertionFailed(prefix + explanation);
+public class Assertion {
+
+    static private final String prefix = "Internal program error: ";
+
+    /*
+     * This variable is used to discourage a java compiler from inlining
+     * an assertion.  An inlined assertion would prevent the unasserter
+     * from working.
+     * I can't offhand think of a way to *prevent* inlining.
+     */
+    static private boolean preventInlining = false;
+
+    /**
+     * If this method is executed, it throws an AssertionFailed with the
+     * message "Internal program error:  'Unreachable' code was reached."  Plant
+     * such assertions in places the program should never reach (such as
+     * the default case in a switch).
+     */
+    static public void fail() throws AssertionFailed {
+        if (preventInlining) fail();
+        throw new AssertionFailed(prefix + "'Unreachable' code was reached.");
+    }
+
+    /**
+     * If this method is executed, it throws an AssertionFailed with the
+     * given explanation, prefixed by "Internal program error: ".
+     */
+    static public void fail(String explanation) throws AssertionFailed {
+        if (preventInlining) fail(explanation);
+        throw new AssertionFailed(prefix + explanation);
+    }
+
+    /**
+     * If the argument is false, throws an AssertionFailed with the message
+     * "Internal program error: Assertion failed."
+     */
+    static public void test(boolean mustBeTrue) throws AssertionFailed {
+        if (mustBeTrue == false) {
+            throw new AssertionFailed(prefix + "Assertion failed.");
+        }
+        if (preventInlining) test(!mustBeTrue);
+    }
+
+    /**
+     * If the argument is false, throws an AssertionFailed with the
+     * given explanation arguments, concatenated as strings and prefixed
+     * by "Internal program error: ".
+     * <p> Use this routine when you need to avoid paying the overhead of
+     * string concatenation ("+") on every test.  It does the concatenation
+     * only if the test fails.
+     */
+    static public void test(boolean mustBeTrue, Object explanation0,
+                            Object explanation1)
+      throws AssertionFailed {
+        if (mustBeTrue == false) {
+            throw new AssertionFailed(prefix + explanation0 + explanation1);
+        }
+        if (preventInlining) test(!mustBeTrue);
+    }
+
+    /**
+     * If the argument is false, throws an AssertionFailed with the
+     * given explanation arguments, concatenated as strings and prefixed
+     * by "Internal program error: ".
+     * <p> Use this routine when you need to avoid paying the overhead of
+     * string concatenation ("+") on every test.  It does the concatenation
+     * only if the test fails.
+     */
+    static public void test(boolean mustBeTrue, Object explanation0,
+                            Object explanation1, Object explanation2)
+      throws AssertionFailed {
+        if (mustBeTrue == false) {
+            throw new AssertionFailed(prefix + explanation0 +
+                                      explanation1 + explanation2);
+        }
+        if (preventInlining) test(!mustBeTrue);
+    }
+
+    /**
+     * If the argument is false, throws an AssertionFailed with the
+     * given explanation arguments, concatenated as strings and prefixed
+     * by "Internal program error: ".
+     * <p> Use this routine when you need to avoid paying the overhead of
+     * string concatenation ("+") on every test.  It does the concatenation
+     * only if the test fails.
+     */
+    static public void test(boolean mustBeTrue, Object explanation0,
+                            Object explanation1, Object explanation2,
+                            Object explanation3)
+      throws AssertionFailed {
+        if (mustBeTrue == false) {
+            throw new AssertionFailed(prefix + explanation0 +
+                                      explanation1 + explanation2 +
+                                      explanation3);
+        }
+        if (preventInlining) test(!mustBeTrue);
+    }
+
+    /**
+     * If the argument is false, throws an AssertionFailed with the
+     * given explanation arguments, concatenated as strings and prefixed
+     * by "Internal program error: ".
+     * <p> Use this routine when you need to avoid paying the overhead of
+     * string concatenation ("+") on every test.  It does the concatenation
+     * only if the test fails.
+     */
+    static public void test(boolean mustBeTrue, Object explanation0,
+                            Object explanation1, Object explanation2,
+                            Object explanation3, Object explanation4)
+      throws AssertionFailed {
+        if (mustBeTrue == false) {
+            throw new AssertionFailed(prefix + explanation0 +
+                                      explanation1 + explanation2 +
+                                      explanation3 + explanation4);
+        }
+        if (preventInlining) test(!mustBeTrue);
+    }
+
+    /**
+     * If the argument is false, throws an AssertionFailed with the
+     * given explanation arguments, concatenated as strings and prefixed
+     * by "Internal program error: ".
+     * <p> Use this routine when you need to avoid paying the overhead of
+     * string concatenation ("+") on every test.  It does the concatenation
+     * only if the test fails.
+     */
+    static public void test(boolean mustBeTrue, Object explanation0,
+                            Object explanation1, Object explanation2,
+                            Object explanation3, Object explanation4,
+                            Object explanation5)
+      throws AssertionFailed {
+        if (mustBeTrue == false) {
+            throw new AssertionFailed(prefix + explanation0 +
+                                      explanation1 + explanation2 +
+                                      explanation3 + explanation4 +
+                                      explanation5);
+        }
+        if (preventInlining) test(!mustBeTrue);
+    }
+
+    /**
+     * If the argument is false, throws an AssertionFailed with the
+     * given explanation arguments, concatenated as strings and prefixed
+     * by "Internal program error: ".
+     * <p> Use this routine when you need to avoid paying the overhead of
+     * string concatenation ("+") on every test.  It does the concatenation
+     * only if the test fails.
+     */
+    static public void test(boolean mustBeTrue, Object explanation0,
+                            Object explanation1, Object explanation2,
+                            Object explanation3, Object explanation4,
+                            Object explanation5, Object explanation6)
+      throws AssertionFailed {
+        if (mustBeTrue == false) {
+            throw new AssertionFailed(prefix + explanation0 +
+                                      explanation1 + explanation2 +
+                                      explanation3 + explanation4 +
+                                      explanation5 + explanation6);
+        }
+        if (preventInlining) test(!mustBeTrue);
+    }
+
+    /**
+     * If the argument is false, throws an AssertionFailed with the
+     * given explanation arguments, concatenated as strings and prefixed
+     * by "Internal program error: ".
+     * <p> Use this routine when you need to avoid paying the overhead of
+     * string concatenation ("+") on every test.  It does the concatenation
+     * only if the test fails.
+     */
+    static public void test(boolean mustBeTrue, Object explanation0,
+                            Object explanation1, Object explanation2,
+                            Object explanation3, Object explanation4,
+                            Object explanation5, Object explanation6,
+                            Object explanation7)
+      throws AssertionFailed {
+        if (mustBeTrue == false) {
+            throw new AssertionFailed(prefix + explanation0 +
+                                      explanation1 + explanation2 +
+                                      explanation3 + explanation4 +
+                                      explanation5 + explanation6 +
+                                      explanation7);
+        }
+        if (preventInlining) test(!mustBeTrue);
+    }
+
+    /**
+     * If the argument is false, throws an AssertionFailed with the
+     * given explanation, prefixed by "Internal program error: ".
+     */
+    static public void test(boolean mustBeTrue, String explanation)
+      throws AssertionFailed {
+        if (mustBeTrue == false) {
+            throw new AssertionFailed(prefix + explanation);
+        }
+        if (preventInlining) test(!mustBeTrue, explanation);
     }
-    if (preventInlining) test(!mustBeTrue, explanation);
-  }
 }



1.5       +8 -6      e/src/jsrc/org/erights/e/develop/assertion/AssertionFailed.java

Index: AssertionFailed.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/develop/assertion/AssertionFailed.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- AssertionFailed.java	2001/09/06 09:55:43	1.4
+++ AssertionFailed.java	2001/11/10 19:40:38	1.5
@@ -28,10 +28,12 @@
  * @see Assertion
  */
 public class AssertionFailed extends Error {
-  public AssertionFailed() {
-    super();
-  }
-  public AssertionFailed (String msg) {
-    super(msg);
-  }
+
+    public AssertionFailed() {
+        super();
+    }
+
+    public AssertionFailed(String msg) {
+        super(msg);
+    }
 }



1.8       +2 -1      e/src/jsrc/org/erights/e/develop/exception/ExceptionMgr.java

Index: ExceptionMgr.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/develop/exception/ExceptionMgr.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- ExceptionMgr.java	2001/11/04 03:12:28	1.7
+++ ExceptionMgr.java	2001/11/10 19:40:38	1.8
@@ -18,6 +18,7 @@
 
 Contributor(s): ______________________________________.
 */
+
 import java.io.PrintWriter;
 
 /**
@@ -88,7 +89,7 @@
     static public void setExceptionNoticer(ExceptionNoticer noticer) {
         if (OurNoticer != null) {
             throw new SecurityException(
-                "cannot reset ExceptionMgr exception noticer");
+              "cannot reset ExceptionMgr exception noticer");
         }
         OurNoticer = noticer;
     }



1.7       +2 -2      e/src/jsrc/org/erights/e/develop/exception/ExceptionNoticer.java

Index: ExceptionNoticer.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/develop/exception/ExceptionNoticer.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- ExceptionNoticer.java	2001/09/06 09:55:43	1.6
+++ ExceptionNoticer.java	2001/11/10 19:40:38	1.7
@@ -24,8 +24,8 @@
  *
  * @see org.erights.e.develop.exception.ExceptionMgr
  */
-public interface ExceptionNoticer
-{
+public interface ExceptionNoticer {
+
     /**
      * Notification of a reported exception.
      *



1.6       +2 -2      e/src/jsrc/org/erights/e/develop/exception/NestedError.java

Index: NestedError.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/develop/exception/NestedError.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- NestedError.java	2001/09/06 09:55:43	1.5
+++ NestedError.java	2001/11/10 19:40:38	1.6
@@ -22,8 +22,8 @@
 /**
  * Nested version of the Java Error class
  */
-public class NestedError extends Error implements NestedThrowable
-{
+public class NestedError extends Error implements NestedThrowable {
+
     private Throwable myContainedThrowable;
 
     /**



1.7       +1 -1      e/src/jsrc/org/erights/e/develop/exception/NestedException.java

Index: NestedException.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/develop/exception/NestedException.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- NestedException.java	2001/09/06 09:55:43	1.6
+++ NestedException.java	2001/11/10 19:40:38	1.7
@@ -23,7 +23,7 @@
  * Nested version of the Java RuntimeException class.
  */
 public class NestedException
-extends RuntimeException implements NestedThrowable {
+  extends RuntimeException implements NestedThrowable {
 
     private Throwable myContainedThrowable;
 



1.6       +2 -0      e/src/jsrc/org/erights/e/develop/exception/NestedIOException.java

Index: NestedIOException.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/develop/exception/NestedIOException.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- NestedIOException.java	2001/09/06 09:55:43	1.5
+++ NestedIOException.java	2001/11/10 19:40:38	1.6
@@ -18,12 +18,14 @@
 
 Contributor(s): ______________________________________.
 */
+
 import java.io.IOException;
 
 /**
  * Nested version of the Java IOException class.
  */
 public class NestedIOException extends IOException implements NestedThrowable {
+
     private Throwable myContainedThrowable;
 
     /**



1.7       +4 -1      e/src/jsrc/org/erights/e/develop/exception/PrintStreamWriter.java

Index: PrintStreamWriter.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/develop/exception/PrintStreamWriter.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- PrintStreamWriter.java	2001/09/06 09:55:43	1.6
+++ PrintStreamWriter.java	2001/11/10 19:40:38	1.7
@@ -44,12 +44,15 @@
 public final class PrintStreamWriter extends Writer {
 
     static private PrintStream lastOutStream = null;
+
     static private PrintWriter lastOutWriter = null;
 
     static private PrintStream lastErrStream = null;
+
     static private PrintWriter lastErrWriter = null;
 
     static private InputStream lastInStream = null;
+
     static private BufferedReader lastInReader = null;
 
     /**
@@ -90,7 +93,7 @@
         if (System.in != lastInStream) {
             lastInStream = System.in;
             lastInReader
-                = new BufferedReader(new InputStreamReader(lastInStream), 1);
+              = new BufferedReader(new InputStreamReader(lastInStream), 1);
         }
         return lastInReader;
     }



1.11      +7 -6      e/src/jsrc/org/erights/e/develop/exception/ThrowableSugar.java

Index: ThrowableSugar.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/develop/exception/ThrowableSugar.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- ThrowableSugar.java	2001/09/06 09:55:43	1.10
+++ ThrowableSugar.java	2001/11/10 19:40:38	1.11
@@ -40,10 +40,11 @@
 
     /** Same number of spaces as in the ProblemPrefix */
     static public final String ProblemIndent =
-        StringHelper.multiply(" ", ProblemPrefix.length());
+      StringHelper.multiply(" ", ProblemPrefix.length());
 
     /** prevents instantiation */
-    private ThrowableSugar() {}
+    private ThrowableSugar() {
+    }
 
     /**
      * In general, a Throwable prints as 'problem: <type: msg>'.
@@ -62,7 +63,7 @@
      * rename it and make a special case in the MirandaMethods.printOn().
      */
     static public void printThrowableOn(Throwable self, Writer out)
-    throws IOException {
+      throws IOException {
         PrintWriter pw = new PrintWriter(out);
         pw.print(ProblemPrefix);
 
@@ -78,7 +79,7 @@
             pw.print(optMsg);
         } else {
             String name = type.getName();
-            pw.print("<" + name.substring(name.lastIndexOf('.') +1));
+            pw.print("<" + name.substring(name.lastIndexOf('.') + 1));
             if (null != optMsg) {
                 pw.print(": " + optMsg);
             }
@@ -99,7 +100,7 @@
             return ((InvocationTargetException)self).getTargetException();
         } else if (self instanceof UndeclaredThrowableException) {
             return ((UndeclaredThrowableException)self).
-                       getUndeclaredThrowable();
+              getUndeclaredThrowable();
         } else {
             return null;
         }
@@ -159,7 +160,7 @@
      *
      */
     static private final String LINE_SEP
-        = System.getProperty("line.separator");
+      = System.getProperty("line.separator");
 
     /**
      * Returns the java backtrace stack of the leaf throwable with all



1.4       +5 -5      e/src/jsrc/org/erights/e/develop/format/ETimeFormat.java

Index: ETimeFormat.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/develop/format/ETimeFormat.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- ETimeFormat.java	2001/09/06 09:55:43	1.3
+++ ETimeFormat.java	2001/11/10 19:40:39	1.4
@@ -40,7 +40,7 @@
 public class ETimeFormat {
 
     static private final DateFormat SortableFormat =
-        new SimpleDateFormat("yyyy-MM-dd!HH:mm:ss.SSS%");
+      new SimpleDateFormat("yyyy-MM-dd!HH:mm:ss.SSS%");
 
     static {
         TimeZone utc = TimeZone.getTimeZone("UTC");
@@ -68,7 +68,7 @@
      */
     static public String formatTime(long millis) {
         String formatted = SortableFormat.format(new Date(millis));
-        return formatted.replace('!','T').replace('%','Z');
+        return formatted.replace('!', 'T').replace('%', 'Z');
     }
 
     /**
@@ -76,9 +76,9 @@
      * return the corresponding number of seconds since the epoch.
      */
     static public long parseTime(String sortableTime) throws ParseException {
-        sortableTime = sortableTime.replace('T','!')
-                                   .replace('Z','%')
-                                   .replace('_',':');
+        sortableTime = sortableTime.replace('T', '!')
+          .replace('Z', '%')
+          .replace('_', ':');
         return SortableFormat.parse(sortableTime).getTime();
     }
 }



1.3       +55 -23    e/src/jsrc/org/erights/e/develop/format/StringHelper.java

Index: StringHelper.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/develop/format/StringHelper.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- StringHelper.java	2001/09/06 09:55:43	1.2
+++ StringHelper.java	2001/11/10 19:40:39	1.3
@@ -30,7 +30,8 @@
 public final class StringHelper {
 
     /** prevent instantiation */
-    private StringHelper() {}
+    private StringHelper() {
+    }
 
     /**
      * reps repitions of self
@@ -50,15 +51,13 @@
      */
     static public String replaceAll(String self,
                                     String oldStr,
-                                    String newStr)
-    {
+                                    String newStr) {
         StringBuffer buf = new StringBuffer(self.length() * 2);
         int oldLen = oldStr.length();
         int p1 = 0;
         for (int p2 = self.indexOf(oldStr);
              p2 != -1;
-             p2 = self.indexOf(oldStr,p1))
-        {
+             p2 = self.indexOf(oldStr, p1)) {
             buf.append(self.substring(p1, p2));
             buf.append(newStr);
             p1 = p2 + oldLen;
@@ -89,25 +88,58 @@
         buf.append('\"');
         for (int i = 0; i < len; i++) {
             char c = self.charAt(i);
-            switch(c) {
-                case '\b': { buf.append("\\b");        break; }
-                case '\t': { buf.append("\\t");        break; }
-                case '\n': { buf.append("\\n\\\n");    break; }
-                case '\f': { buf.append("\\f");        break; }
-                case '\r': { buf.append("\\r");        break; }
-                case '\"': { buf.append("\\\"");       break; }
-                case '\'': { buf.append("\\\'");       break; }
-                case '\\': { buf.append("\\\\");       break; }
-                default: {
-                    if (c < 32 && c > 255) {
-                        String num = "0000" + Integer.toHexString(c);
-                        int numlen = num.length();
-                        num = num.substring(numlen - 4, numlen);
-                        buf.append("\\u").append(num);
-                    } else {
-                        buf.append(c);
+            switch (c) {
+                case '\b':
+                    {
+                        buf.append("\\b");
+                        break;
+                    }
+                case '\t':
+                    {
+                        buf.append("\\t");
+                        break;
+                    }
+                case '\n':
+                    {
+                        buf.append("\\n\\\n");
+                        break;
+                    }
+                case '\f':
+                    {
+                        buf.append("\\f");
+                        break;
+                    }
+                case '\r':
+                    {
+                        buf.append("\\r");
+                        break;
+                    }
+                case '\"':
+                    {
+                        buf.append("\\\"");
+                        break;
+                    }
+                case '\'':
+                    {
+                        buf.append("\\\'");
+                        break;
+                    }
+                case '\\':
+                    {
+                        buf.append("\\\\");
+                        break;
+                    }
+                default:
+                    {
+                        if (c < 32 && c > 255) {
+                            String num = "0000" + Integer.toHexString(c);
+                            int numlen = num.length();
+                            num = num.substring(numlen - 4, numlen);
+                            buf.append("\\u").append(num);
+                        } else {
+                            buf.append(c);
+                        }
                     }
-                }
             }
         }
         buf.append('\"');



1.16      +59 -33    e/src/jsrc/org/erights/e/develop/trace/Trace.java

Index: Trace.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/develop/trace/Trace.java,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -r1.15 -r1.16
--- Trace.java	2001/10/02 23:38:31	1.15
+++ Trace.java	2001/11/10 19:40:39	1.16
@@ -41,6 +41,7 @@
  */
 
 final public class Trace implements TraceConstants {
+
     /**
      * Set this to false to compile out all tracing. This also has
      * to be set in TraceDummies.java
@@ -115,19 +116,30 @@
      */
     /** comm systems */
     static public final Trace comm = new Trace("comm");
+
     static public final Trace captp = new Trace("captp");
+
     static public final Trace wire = new Trace("wire");
+
     static public final Trace tunnel = new Trace("tunnel");
+
     /** Distributed garbage collector. */
     static public final Trace dgc = new Trace("dgc");
+
     static public final Trace pumpkin = new Trace("pumpkin");
+
     /** The E runtime */
     static public final Trace eruntime = new Trace("eruntime");
+
     static public final Trace causality = new Trace("causality");
+
     /** Classes involved in starting up the world. */
     static public final Trace startup = new Trace("startup");
+
     static public final Trace entropy = new Trace("entropy");
+
     static public final Trace timers = new Trace("timers");
+
     static public final Trace trace = new Trace("trace");
     //misc
     static public final Trace console = new Trace("console");
@@ -155,7 +167,7 @@
 // DEPRECATED FUNCTIONS
 
     public void $(String message) {
-      recordTraceMessageXyzzY(message, DEBUG, null, false);
+        recordTraceMessageXyzzY(message, DEBUG, null, false);
     }
 // Constructors
 
@@ -179,24 +191,26 @@
      * @param post string to append to an element.
      */
     static public String arrayToString(Object a[], String name, String
-                               pre, String sep, String post) {
+      pre, String sep, String post) {
         int i = 0;
         String s = name + "[";
         while (i < a.length) {
             if (a[i] == null) {
-                s += "null" ;
+                s += "null";
             } else {
                 s += pre + a[i].toString() + post;
             }
             if (i++ < a.length - 1)
                 s += sep;
         }
-        s += "]" ;
+        s += "]";
         return s;
     }
+
     public void debugm(String message) {
         if (debug) recordTraceMessageXyzzY(message, DEBUG, null, false);
     }
+
     public void debugm(String message, Object o) {
         if (debug) recordTraceMessageXyzzY(message, DEBUG, o, false);
     }
@@ -209,6 +223,7 @@
     public void debugReportException(Throwable t, String msg) {
         if (debug) recordTraceMessageXyzzY(msg, DEBUG, t, false);
     }
+
     public void errorm(String message) {
         if (error) recordTraceMessageXyzzY(message, ERROR, null, false);
     }
@@ -220,6 +235,7 @@
     public void errorm(String message, int bugNumber) {
         if (error) recordTraceMessageXyzzY(message, ERROR, null, true);
     }
+
     public void errorm(String message, Object o) {
         if (error) recordTraceMessageXyzzY(message, ERROR, o, false);
     }
@@ -255,9 +271,11 @@
     public void errorReportException(Throwable t, String msg, int bugNumber) {
         if (error) recordTraceMessageXyzzY(msg, ERROR, t, true);
     }
+
     public void eventm(String message) {
         if (event) recordTraceMessageXyzzY(message, EVENT, null, false);
     }
+
     public void eventm(String message, Object o) {
         if (event) recordTraceMessageXyzzY(message, EVENT, o, false);
     }
@@ -283,7 +301,7 @@
         System.exit(1);
     }
     // deprecated
-    public void fileMode (boolean b) {
+    public void fileMode(boolean b) {
         // warningm("Deprecated function fileMode called.  It is now a no-op.");
     }
 
@@ -291,7 +309,7 @@
      * Return the current stack trace as a string.
      * @ Deprecated in favor of StackFrameData.getStackTrace().
      */
-    static public String getStackTrace () {
+    static public String getStackTrace() {
         // Retain this code so we don't have to futz around
         // with removing this frame's entry from the string
         // getStackTrace returns.
@@ -307,15 +325,15 @@
         }
     }
     // deprecated
-    public void lineMode (boolean b) {
+    public void lineMode(boolean b) {
         // warningm("Deprecated function lineMode called.  It is now a no-op.");
     }
     // deprecated
-    public void methodMode (boolean b) {
+    public void methodMode(boolean b) {
         // warningm("Deprecated function methodMode called.  It is now a no-op.");
     }
     // deprecated
-    public void nl () {
+    public void nl() {
         $("");
     }
     // Not all errors are ones that should be thrust into a user's face.
@@ -348,7 +366,7 @@
      * number a trace call was made from searches for this method. So
      * it should have a name unlikely to be accidentally duplicated. */
     private void recordTraceMessageXyzzY(String message,
-                                    int level, Object o, boolean noNotify) {
+                                         int level, Object o, boolean noNotify) {
         TraceMessage traceMessage = new TraceMessage();
         traceMessage.message = message;
         traceMessage.object = o;
@@ -373,26 +391,26 @@
     }
 
     /**
-      * To ensure that exceptional conditions are only being ignored
-      * for good reason, we adopt the discipline that a caught
-      * exception should <p>
-      *
-      * 1) be rethrown <p>
-      * 2) cause another exception to be thrown instead <p>
-      * 3) be ignored, in a traceable way, for some stated reason <p>
-      *
-      * Only by making #3 explicit can we distinguish it from
-      * accidentally ignoring the exception.  An exception should,
-      * therefore, only be ignored by asking a Trace object to
-      * shred it.  This request carries a string that justifies
-      * allowing the program to continue normally following this
-      * event.  As shredded exceptions will likely be symptoms of
-      * bugs, one will be able to have them traced.
-      * <p>
-      * The reason for the shredding is logged at verbose level.
-      * <p>
-      * This now appears to be deprecated.
-      */
+     * To ensure that exceptional conditions are only being ignored
+     * for good reason, we adopt the discipline that a caught
+     * exception should <p>
+     *
+     * 1) be rethrown <p>
+     * 2) cause another exception to be thrown instead <p>
+     * 3) be ignored, in a traceable way, for some stated reason <p>
+     *
+     * Only by making #3 explicit can we distinguish it from
+     * accidentally ignoring the exception.  An exception should,
+     * therefore, only be ignored by asking a Trace object to
+     * shred it.  This request carries a string that justifies
+     * allowing the program to continue normally following this
+     * event.  As shredded exceptions will likely be symptoms of
+     * bugs, one will be able to have them traced.
+     * <p>
+     * The reason for the shredding is logged at verbose level.
+     * <p>
+     * This now appears to be deprecated.
+     */
     public void shred(Throwable ex, String reason) {
         verboseReportException(ex, reason);
     }
@@ -421,22 +439,24 @@
     public void timingm(String message, Object o) {
         if (timing) recordTraceMessageXyzzY(message, TIMING, o, false);
     }
+
     /**
      * Invoking this method causes this class to be loaded, which
      * causes all the static trace objects to be defined.  In
      * particular, Trace.trace becomes defined.  That's convenient, in that
      * it allows more tracing of the tracing startup itself.
      */
-    static /*package*/ void touch()
-    {
+    static /*package*/ void touch() {
     }
     // deprecated
-    public void traceMode (boolean b) {
+    public void traceMode(boolean b) {
         // warningm("Deprecated function traceMode called.  It is now a no-op.");
     }
+
     public void usagem(String message) {
         if (usage) recordTraceMessageXyzzY(message, USAGE, null, false);
     }
+
     public void usagem(String message, Object o) {
         if (usage) recordTraceMessageXyzzY(message, USAGE, o, false);
     }
@@ -449,9 +469,11 @@
     public void usageReportException(Throwable t, String msg) {
         if (usage) recordTraceMessageXyzzY(msg, USAGE, t, false);
     }
+
     public void verbosem(String message) {
         if (verbose) recordTraceMessageXyzzY(message, VERBOSE, null, false);
     }
+
     public void verbosem(String message, Object o) {
         if (verbose) recordTraceMessageXyzzY(message, VERBOSE, o, false);
     }
@@ -464,9 +486,11 @@
     public void verboseReportException(Throwable t, String msg) {
         if (verbose) recordTraceMessageXyzzY(msg, VERBOSE, t, false);
     }
+
     public void warningm(String message) {
         if (warning) recordTraceMessageXyzzY(message, WARNING, null, false);
     }
+
     public void warningm(String message, Object o) {
         if (warning) recordTraceMessageXyzzY(message, WARNING, o, false);
     }
@@ -479,9 +503,11 @@
     public void warningReportException(Throwable t, String msg) {
         if (warning) recordTraceMessageXyzzY(msg, WARNING, t, false);
     }
+
     public void worldm(String message) {
         if (world) recordTraceMessageXyzzY(message, WORLD, null, false);
     }
+
     public void worldm(String message, Object o) {
         if (world) recordTraceMessageXyzzY(message, WORLD, o, false);
     }



1.12      +57 -54    e/src/jsrc/org/erights/e/develop/trace/TraceBuffer.java

Index: TraceBuffer.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/develop/trace/TraceBuffer.java,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- TraceBuffer.java	2001/09/06 09:55:43	1.11
+++ TraceBuffer.java	2001/11/10 19:40:39	1.12
@@ -45,6 +45,7 @@
  */
 
 class TraceBuffer implements TraceMessageAcceptor, TraceConstants {
+
     /** The first message in the buffer. */
     TraceMessage start;
 
@@ -74,6 +75,7 @@
         end = message;
         currentSize = 1;
     }
+
     public synchronized void accept(TraceMessage message) {
         Assertion.test(start != null);
         Assertion.test(end != null);
@@ -97,19 +99,20 @@
             newSize = STARTING_TRACE_BUFFER_SIZE;
         } else if (value.equalsIgnoreCase(UNLIMITED_NAME)) {
             newSize = Integer.MAX_VALUE;
-        } else try {
-            newSize = Integer.parseInt(value);
-        } catch (NumberFormatException e) {
-            Trace.trace.errorm(
-                "Buffer size cannot be changed to illegal value '" +
-                value + "'.");
-            newSize = maxSize;  // leave unchanged.
-        }
+        } else
+            try {
+                newSize = Integer.parseInt(value);
+            } catch (NumberFormatException e) {
+                Trace.trace.errorm(
+                  "Buffer size cannot be changed to illegal value '" +
+                  value + "'.");
+                newSize = maxSize;  // leave unchanged.
+            }
 
         if (newSize < 1) {
             Trace.trace.errorm(
-                value + " is too small a threshold size for the log. "
-                + "Ignoring.");
+              value + " is too small a threshold size for the log. "
+              + "Ignoring.");
             newSize = maxSize;
         }
 
@@ -147,68 +150,68 @@
                 stream = new PrintWriter(fos, true);
             } catch (SecurityException e) {
                 Trace.trace.errorm(
-                    "Security exception when opening dump file '" +
-                    outputDestination + "'.");
+                  "Security exception when opening dump file '" +
+                  outputDestination + "'.");
                 return;
             } catch (FileNotFoundException e) {
                 Trace.trace.errorm(
-                    "Could not open dump file '" +
-                    outputDestination + "'.");
+                  "Could not open dump file '" +
+                  outputDestination + "'.");
                 return;
             } catch (IOException e) {
                 Trace.trace.errorm(
-                    "Unknown error when opening dump file '" +
-                    outputDestination + "'.");
+                  "Unknown error when opening dump file '" +
+                  outputDestination + "'.");
                 return;
             }
         }
 
-       Trace.trace.usagem("Dumping internal trace buffer to " +
-                             outputDestination);
+        Trace.trace.usagem("Dumping internal trace buffer to " +
+                           outputDestination);
 
-       TraceMessageStringifier stringifier = new TraceMessageStringifier();
+        TraceMessageStringifier stringifier = new TraceMessageStringifier();
 
-       TraceMessage current = start;
-       // The begin/end lines make the dump easier to see when it and the log are
-       // going to the same place (typically stdout).
-       stream.println("======================= BEGIN TRACE BUFFER DUMP =======================");
-       while (current != null) {
-           String output = stringifier.toString(current);
-           stream.println(output);
-           current = current.next;
-       }
-       if (stream.checkError()) {
-           Trace.trace.errorm("Could not dump trace buffer to " +
-                                outputDestination);
-       }
-       stream.println("======================= END TRACE BUFFER DUMP =======================");
-       if (stream != PrintStreamWriter.out()) {
-           stream.close();
-       }
+        TraceMessage current = start;
+        // The begin/end lines make the dump easier to see when it and the log are
+        // going to the same place (typically stdout).
+        stream.println("======================= BEGIN TRACE BUFFER DUMP =======================");
+        while (current != null) {
+            String output = stringifier.toString(current);
+            stream.println(output);
+            current = current.next;
+        }
+        if (stream.checkError()) {
+            Trace.trace.errorm("Could not dump trace buffer to " +
+                               outputDestination);
+        }
+        stream.println("======================= END TRACE BUFFER DUMP =======================");
+        if (stream != PrintStreamWriter.out()) {
+            stream.close();
+        }
     }
 
     /**
      * Dump the buffer to a TraceMessageAcceptor.
      */
     /*package*/ synchronized void dump(TraceMessageAcceptor acceptor) {
-       Trace.trace.usagem("Dumping internal trace buffer.");
+        Trace.trace.usagem("Dumping internal trace buffer.");
 
-       // We want to demarcate the dumped trace in the new log, but
-       // not have the message end up in this log, which could be
-       // confusing.
-
-       TraceMessage traceMessage = unpostedTraceMessage("======================= BEGIN INTERNAL TRACE BUFFER DUMP =======================",
-                                                        ERROR);
-       acceptor.accept(traceMessage);
-
-       TraceMessage current = start;
-       while (current != null) {
-           acceptor.accept(current);
-           current = current.next;
-       }
-       traceMessage = unpostedTraceMessage("======================= END INTERNAL TRACE BUFFER DUMP =======================",
-                                           ERROR);
-       acceptor.accept(traceMessage);
+        // We want to demarcate the dumped trace in the new log, but
+        // not have the message end up in this log, which could be
+        // confusing.
+
+        TraceMessage traceMessage = unpostedTraceMessage("======================= BEGIN INTERNAL TRACE BUFFER DUMP =======================",
+                                                         ERROR);
+        acceptor.accept(traceMessage);
+
+        TraceMessage current = start;
+        while (current != null) {
+            acceptor.accept(current);
+            current = current.next;
+        }
+        traceMessage = unpostedTraceMessage("======================= END INTERNAL TRACE BUFFER DUMP =======================",
+                                            ERROR);
+        acceptor.accept(traceMessage);
     }
     // Note:  because messages are never thrown away,
     // except by GC, it is safe for this not to be synchronized.
@@ -239,7 +242,7 @@
      * something to be skipped on the way to the true caller.
      */
 
-    private TraceMessage recordTraceMessageXyzzY (String message, int level) {
+    private TraceMessage recordTraceMessageXyzzY(String message, int level) {
         TraceMessage tm = new TraceMessage();
         tm.message = message;
         tm.date = new Date();



1.5       +14 -15    e/src/jsrc/org/erights/e/develop/trace/TraceCaller.java

Index: TraceCaller.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/develop/trace/TraceCaller.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- TraceCaller.java	2001/09/06 09:55:43	1.4
+++ TraceCaller.java	2001/11/10 19:40:39	1.5
@@ -58,14 +58,14 @@
  * If the implementation runs into an odd format, it should leave
  * accessors it's not sure of with their initial values.
  */
-public class TraceCaller
-{
+public class TraceCaller {
+
     /**
      * The name of the method running in the targeted frame.
      * It is partly qualified, consisting of the last element of the
      * classname plus the method name (for example, "String.indexOf").
      */
-     public String methodName = "method?";
+    public String methodName = "method?";
 
     /** The file that method is in.  The full pathname is not available. */
     public String fileName = "file?";
@@ -115,7 +115,9 @@
 
     /** Delimit the beginning and end of a line in a larger string. */
     private class Line {
+
         int start = -1;
+
         int pastEnd = -1;
     }
 
@@ -159,8 +161,7 @@
     private String targetMethod = "recordTraceMessageXyzzY";
 
     private Line findTargetLineBounds(String stackDump)
-        throws Exception
-    {
+      throws Exception {
         int middle = stackDump.indexOf(targetMethod);
         quitIf(middle == -1);
 
@@ -174,7 +175,7 @@
         // frame is totally bogus and should be skipped.
 
         int possibleDuplicate =
-            stackDump.indexOf("TraceMessage.<init>", middle);
+          stackDump.indexOf("TraceMessage.<init>", middle);
         if (possibleDuplicate != -1) {
             middle = stackDump.indexOf(targetMethod, possibleDuplicate);
             quitIf(middle == -1);
@@ -185,9 +186,9 @@
         // 1.2.2 Classic VM, the frame for the TraceMessage
         // constructor is mislabelled as another instance of the
         // targetMethod.
-        possibleDuplicate = stackDump.indexOf(targetMethod, line.pastEnd+1);
-        if (   possibleDuplicate != -1 &&
-               stackDump.lastIndexOf('\n', possibleDuplicate) ==line.pastEnd) {
+        possibleDuplicate = stackDump.indexOf(targetMethod, line.pastEnd + 1);
+        if (possibleDuplicate != -1 &&
+          stackDump.lastIndexOf('\n', possibleDuplicate) == line.pastEnd) {
             line = lineFromPoint(stackDump, possibleDuplicate);
         }
 
@@ -202,8 +203,7 @@
      * the delimiters.
      */
     private Line lineFromPoint(String stackDump, int middle)
-        throws Exception
-    {
+      throws Exception {
         Line retval = new Line();
 
         retval.start = stackDump.lastIndexOf('\n', middle);
@@ -236,8 +236,7 @@
      * sophisticated. I expect installers to check their own stack
      * frame format and fix this up as needed.
      */
-    private void parseLine(String stackDump, Line line) throws Exception
-    {
+    private void parseLine(String stackDump, Line line) throws Exception {
         /* We're looking at:
            at Trace.Test.main(Test.java:21)
         */
@@ -302,9 +301,9 @@
 
             // A jit might leave the linenumber as "Compiled Code".
             String maybeLineNumber =
-                stackDump.substring(colon + 1, closeParen);
+              stackDump.substring(colon + 1, closeParen);
             if (maybeLineNumber.charAt(0) > '0' &&
-                   maybeLineNumber.charAt(0) <= '9')
+              maybeLineNumber.charAt(0) <= '9')
                 lineNumber = maybeLineNumber;
         }
         // else jit-compiled:  leave fileName and lineNumber



1.9       +21 -2     e/src/jsrc/org/erights/e/develop/trace/TraceConstants.java

Index: TraceConstants.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/develop/trace/TraceConstants.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- TraceConstants.java	2001/09/06 18:01:31	1.8
+++ TraceConstants.java	2001/11/10 19:40:39	1.9
@@ -27,10 +27,12 @@
 import java.io.File;
 
 interface TraceConstants {
+
     String version = "Trace version 1.2 of September 02000";
 
     /** This identifies the TraceMessageAcceptor used for the on-disk log. */
     int LOG = 0;
+
     /**
      * This identifies the TraceMessageAcceptor used for the in-core trace and
      * its associated window.
@@ -51,14 +53,20 @@
      */
 
     int ERROR = 10000;  // always set.
+
     int WARNING = 120;
+
     int WORLD = 100;
+
     int USAGE = 80;
+
     int EVENT = 60;
+
     int DEBUG = 40;
+
     int VERBOSE = 20;
 
-    int MAX_THRESHOLD=ERROR;
+    int MAX_THRESHOLD = ERROR;
 
     /**
      * As a late addition, there's a "timing" boolean that can be
@@ -78,18 +86,23 @@
      * right in 1.0.4.  That is, two "default" strings weren't eq.
      */
     int FROM_DEFAULT = 0;
+
     int FOR_SUBSYSTEM = 1;
 
     String reasonNames[] = {"default", "subsystem" };
 
     /* Trace buffer defaults */
     int STARTING_TRACE_BUFFER_SIZE = 500;
+
     int STARTING_TRACE_THRESHOLD = USAGE;
 
     /* Trace log defaults. */
     long STARTING_LOG_SIZE_THRESHOLD = 500000;
+
     long SMALLEST_LOG_SIZE_THRESHOLD = 1000;
+
     int STARTING_LOG_THRESHOLD = WORLD;
+
     boolean STARTING_LOG_WRITE = false;
 
     // Behavior when opening files that already exist.
@@ -97,19 +110,25 @@
     // interning doesn't seem to work right in 1.0.2, at least across
     // class boundaries.
     int IRRELEVANT = -1; // When opening stdout.
+
     int ADD = 1111;  // Add a new backup file.
+
     int OVERWRITE = 0;    // Overwrite any existing backup file.
+
     int STARTING_LOG_BACKUP_ACTION = ADD;
 
     // XXX At some point, this might be initialized to some default
     // directory.  In Windows, the "current working directory" has
     // a bad habit of hopping around at runtime.
     File STARTING_LOG_DIR = new File(".");
+
     String STARTING_LOG_TAG = "etrace";
+
     String LOG_EXTENSION = ".txt";  // DON'T change this to upper case.
-                                    // It causes duplicate filenames.
+    // It causes duplicate filenames.
 
     // Internationalization, ho ho.
     String DEFAULT_NAME = "default";
+
     String UNLIMITED_NAME = "unlimited";
 }



1.10      +20 -24    e/src/jsrc/org/erights/e/develop/trace/TraceController.java

Index: TraceController.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/develop/trace/TraceController.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- TraceController.java	2001/10/02 23:38:31	1.9
+++ TraceController.java	2001/11/10 19:40:39	1.10
@@ -175,13 +175,13 @@
         myDefaultThresholds[acceptorIndex] = newThreshold;
 
         Trace.trace.eventm("The new default threshold for " +
-                          acceptorNames[acceptorIndex] + " is " +
-                          TraceLevelTranslator.terse(newThreshold));
+                           acceptorNames[acceptorIndex] + " is " +
+                           TraceLevelTranslator.terse(newThreshold));
 
         Enumeration e = myTraceMediators.elements();
         while (e.hasMoreElements()) {
             TraceSubsystemMediator mediator =
-                (TraceSubsystemMediator) e.nextElement();
+              (TraceSubsystemMediator)e.nextElement();
             if (mediator.deferToDefaultThreshold[acceptorIndex]) {
                 mediator.setOneThreshold(acceptorIndex, newThreshold,
                                          FROM_DEFAULT);
@@ -196,20 +196,19 @@
      */
     static private void changeOneSubsystem(int acceptorIndex,
                                            String subsystem,
-                                           String value)
-    {
+                                           String value) {
         if (value.equalsIgnoreCase(DEFAULT_NAME)) {
             // set back to default threshold, whatever that is.
             findOrCreateMediator(subsystem).setOneThreshold(
-                acceptorIndex,
-                myDefaultThresholds[acceptorIndex],
-                FROM_DEFAULT);
+              acceptorIndex,
+              myDefaultThresholds[acceptorIndex],
+              FROM_DEFAULT);
         } else {
             // set to specific threshold.
             findOrCreateMediator(subsystem).setOneThreshold(
-                acceptorIndex,
-                TraceLevelTranslator.toInt(value),
-                FOR_SUBSYSTEM);
+              acceptorIndex,
+              TraceLevelTranslator.toInt(value),
+              FOR_SUBSYSTEM);
         }
     }
 
@@ -241,8 +240,7 @@
      * to remove without first adding, but it does provoke a warning.
      */
     static public void errorWatcher(TraceErrorWatcher aTraceErrorWatcher,
-                                    boolean add)
-    {
+                                    boolean add) {
         if (add) {
             Trace.trace.usagem("Adding an object that watches for errors.");
             if (myTraceErrorWatcher != null) {
@@ -270,7 +268,7 @@
         String key = name.toLowerCase();
 
         TraceSubsystemMediator mediator =
-            (TraceSubsystemMediator) myTraceMediators.get(key);
+          (TraceSubsystemMediator)myTraceMediators.get(key);
         if (mediator == null) {
             if (Trace.trace != null) {
                 Trace.trace.debugm("Creating mediator for " + name);
@@ -383,8 +381,7 @@
      */
     // Note: synchronization is the responsibility of the objects
     // whose properties are being changed.
-    static public void setProperty(String key, String value)
-    {
+    static public void setProperty(String key, String value) {
         Assertion.test(value != null, "Trace property value cannot be null.");
         key = key.trim();
         value = value.trim();
@@ -464,16 +461,15 @@
      */
     static private void setTiming(int acceptorIndex,
                                   String afterFirstUnderbar,
-                                  String value)
-    {
+                                  String value) {
         int underbar = afterFirstUnderbar.lastIndexOf('_');
         Assertion.test(underbar != -1);
         String subsystem = afterFirstUnderbar.substring(0, underbar);
         if (value.equalsIgnoreCase("on") ||
-            value.equalsIgnoreCase("true")) {
+          value.equalsIgnoreCase("true")) {
             findOrCreateMediator(subsystem).setTiming(acceptorIndex, true);
         } else if (value.equalsIgnoreCase("off") ||
-                   value.equalsIgnoreCase("false")) {
+          value.equalsIgnoreCase("false")) {
             findOrCreateMediator(subsystem).setTiming(acceptorIndex, false);
         } else {
             Trace.trace.warningm("Unknown timing value given: " + value);
@@ -496,7 +492,7 @@
      */
     static public void start(Properties p) {
         if (myStarted) {
-            Trace.trace.errorm("The tracing system is being started for the second time.\n"+
+            Trace.trace.errorm("The tracing system is being started for the second time.\n" +
                                "Ignoring the second start.", -1);
             return;
         }
@@ -510,8 +506,8 @@
         }
 
         if (!p.containsKey("TraceLog_name") &&
-            !p.containsKey("TraceLog_dir") &&
-            !p.containsKey("TraceLog_tag")) {
+          !p.containsKey("TraceLog_dir") &&
+          !p.containsKey("TraceLog_tag")) {
             //Trace.trace.usagem("TEMPORARY: TraceLog set to standard " +
             //                   "output for backwards compatibility.");
             p.put("TraceLog_name", "-");
@@ -538,7 +534,7 @@
         if (underbar == -1) {
             return false;
         }
-        String tail = afterFirstUnderbar.substring(underbar+1);
+        String tail = afterFirstUnderbar.substring(underbar + 1);
         return tail.equalsIgnoreCase("timing");
     }
 }



1.5       +2 -2      e/src/jsrc/org/erights/e/develop/trace/TraceDateToString.java

Index: TraceDateToString.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/develop/trace/TraceDateToString.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- TraceDateToString.java	2001/09/06 09:55:43	1.4
+++ TraceDateToString.java	2001/11/10 19:40:39	1.5
@@ -53,7 +53,7 @@
      * XXX should fix the tracing package to use 'long millis' instead of
      * 'Date date'
      */
-    /*package*/ final static String dateTimeString (Date date) {
+    /*package*/ final static String dateTimeString(Date date) {
         return ETimeFormat.formatTime(date.getTime());
     }
 
@@ -62,6 +62,6 @@
      * convert ":"s to "_"s.
      */
     /*package*/ final static String terseCompleteDateString(Date date) {
-        return ETimeFormat.formatTime(date.getTime()).replace(':','_');
+        return ETimeFormat.formatTime(date.getTime()).replace(':', '_');
     }
 }



1.7       +2 -1      e/src/jsrc/org/erights/e/develop/trace/TraceLevelTranslator.java

Index: TraceLevelTranslator.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/develop/trace/TraceLevelTranslator.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- TraceLevelTranslator.java	2001/09/06 09:55:43	1.6
+++ TraceLevelTranslator.java	2001/11/10 19:40:39	1.7
@@ -29,7 +29,7 @@
 /**
  * Translate numerical trace levels into strings and vice versa.
  */
-class TraceLevelTranslator implements TraceConstants{
+class TraceLevelTranslator implements TraceConstants {
 
     /**
      * Convert tracing thresholds into three-character synonyms.
@@ -70,6 +70,7 @@
         }
         return retval;
     }
+
     /**
      * Convert a string into one of the numeric trace levels.  Because
      * this method is used only to identify priority thresholds, it



1.11      +26 -22    e/src/jsrc/org/erights/e/develop/trace/TraceLog.java

Index: TraceLog.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/develop/trace/TraceLog.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- TraceLog.java	2001/10/02 23:38:31	1.10
+++ TraceLog.java	2001/11/10 19:40:39	1.11
@@ -35,6 +35,7 @@
  * on-disk log.
  */
 class TraceLog implements TraceMessageAcceptor, TraceConstants {
+
     /**
      * Determine whether to rename full log files and open new
      * ones, or to empty a full log file.
@@ -53,7 +54,7 @@
     private long myMaxSize = STARTING_LOG_SIZE_THRESHOLD;
 
     /** Number of characters in the current log file. */
-    private long  myCurrentSize;
+    private long myCurrentSize;
 
     /**
      * The log to which messages are currently flowing.  Initially
@@ -82,10 +83,10 @@
     private TraceMessageStringifier myStringifier = new TraceMessageStringifier();
 
     /** This variable is used to count accurately the size of the log.
-        Note that I don't try to catch a SecurityException if one occurs.
-        We'll have other, bigger, problems if that happens. */
+     Note that I don't try to catch a SecurityException if one occurs.
+     We'll have other, bigger, problems if that happens. */
     static private final int lineSeparatorLength =
-        System.getProperty("line.separator").length();
+      System.getProperty("line.separator").length();
 
 // QUEUE MANAGEMENT
 
@@ -113,7 +114,7 @@
      * and the queue are turned off.
      */
     public synchronized void accept(TraceMessage message) {
-        if (! isAcceptingMessages()) {
+        if (!isAcceptingMessages()) {
             return;
         }
 
@@ -174,7 +175,7 @@
         myCurrent = myPending;
         Trace.trace.usagem("Logging begins on " +
                            myCurrent.printName() + ".");
-        myPending = (TraceLogDescriptor) myCurrent.diverge();
+        myPending = (TraceLogDescriptor)myCurrent.diverge();
         myCurrentSize = 0;
         drainQueue();
     }
@@ -196,7 +197,7 @@
             myBackupAction = ADD;
         } else {
             Trace.trace.errorm("TraceLog_backups property was given unknown value '" +
-                newBehavior + "'.");
+                               newBehavior + "'.");
         }
     }
 
@@ -230,19 +231,20 @@
             newSize = STARTING_LOG_SIZE_THRESHOLD;
         } else if (value.equalsIgnoreCase(UNLIMITED_NAME)) {
             newSize = Long.MAX_VALUE;
-        } else try {
-            newSize = Long.parseLong(value);
-        } catch (NumberFormatException e) {
-            Trace.trace.errorm(
-                "Log size cannot be changed to illegal value '" +
-                value + "'.");
-            newSize = myMaxSize;  // leave unchanged.
-        }
+        } else
+            try {
+                newSize = Long.parseLong(value);
+            } catch (NumberFormatException e) {
+                Trace.trace.errorm(
+                  "Log size cannot be changed to illegal value '" +
+                  value + "'.");
+                newSize = myMaxSize;  // leave unchanged.
+            }
 
         if (newSize < SMALLEST_LOG_SIZE_THRESHOLD) {
             Trace.trace.errorm(
-                value + " is too small a threshold size for the log. "
-                + "Try " + SMALLEST_LOG_SIZE_THRESHOLD + ".");
+              value + " is too small a threshold size for the log. "
+              + "Try " + SMALLEST_LOG_SIZE_THRESHOLD + ".");
             newSize = myMaxSize;
         }
 
@@ -297,7 +299,7 @@
                     beginLogging();
                 }
                 // else
-                    // do nothing - setupIsComplete() will handle this case.
+                // do nothing - setupIsComplete() will handle this case.
             }
         } else if (value.equalsIgnoreCase("false")) {
             if (!myWrite) {
@@ -316,7 +318,7 @@
             }
         } else {
             Trace.trace.errorm("TraceLog_write property was given value '" +
-                value + "'.");
+                               value + "'.");
         }
     }
 
@@ -458,7 +460,7 @@
         Trace.trace.worldm("Previous log was " + lastLog + ".");
 
         myCurrentSize = 0;
-        myPending = (TraceLogDescriptor) myCurrent.diverge();
+        myPending = (TraceLogDescriptor)myCurrent.diverge();
         drainQueue();
     }
 
@@ -474,6 +476,7 @@
     private final boolean isAcceptingMessages() {
         return myWrite || isQueuing();
     }
+
     private final boolean isQueuing() {
         return queuedMessages != null;
     }
@@ -582,9 +585,10 @@
         Trace.trace.usagem("Logging continues on " +
                            myCurrent.printName() + ".");
         Trace.trace.worldm("This is a continuation of a previous log.");
-        myPending = (TraceLogDescriptor) myCurrent.diverge();
+        myPending = (TraceLogDescriptor)myCurrent.diverge();
         drainQueue();
     }
+
     /**
      * Redirect trace messages to a queue.  Used while switching to a
      * new log file, or before setup is complete.
@@ -594,7 +598,7 @@
     private final void startQueuing() {
         // Note:  there can be no trace messages in this routine,
         // because it's called from the constructor.
-        if (! isQueuing()) {
+        if (!isQueuing()) {
             queuedMessages = new Vector();
         }
     }



1.13      +16 -15    e/src/jsrc/org/erights/e/develop/trace/TraceLogDescriptor.java

Index: TraceLogDescriptor.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/develop/trace/TraceLogDescriptor.java,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- TraceLogDescriptor.java	2001/10/02 23:38:31	1.12
+++ TraceLogDescriptor.java	2001/11/10 19:40:39	1.13
@@ -239,14 +239,15 @@
         }
 
         Trace.trace.usagem("Renaming previous version of " +
-                          file + " to " + backupFile + ".");
+                           file + " to " + backupFile + ".");
         try {
-            if (backupFile.exists()) {  // clashAction == OVERWRITE
+            if (backupFile.exists()) {
+                // clashAction == OVERWRITE
                 if (!backupFile.delete()) {
                     Trace.trace.warningm("The previous version of " +
-                                     file + " could not be put in backup " +
-                                     "file " + backupFile + " because the " +
-                                     " existing file could not be deleted.");
+                                         file + " could not be put in backup " +
+                                         "file " + backupFile + " because the " +
+                                         " existing file could not be deleted.");
                     return false;
                 }
                 Trace.trace.eventm("The previous version of " +
@@ -289,10 +290,10 @@
         // is independent of the filename format.
         dir = new File(value);
         Trace.trace.eventm("Log directory will be changed to '" +
-                            value + "'.");
+                           value + "'.");
         if (!dir.isDirectory()) {
             Trace.trace.warningm("The log directory was set to '"
-                + value + "', which is not currently a directory.");
+                                 + value + "', which is not currently a directory.");
         }
     }
 
@@ -314,7 +315,7 @@
             usePersonalFormat = true;
             personalFile = value;
             Trace.trace.eventm("Log destination will be changed to " +
-                "file '" + personalFile + "'.");
+                               "file '" + personalFile + "'.");
         }
     }
 
@@ -359,7 +360,7 @@
 
         File nextFile = desiredLogFile();
         Trace.trace.eventm("Logging has been directed to '" +
-                          nextFile + "'.");
+                           nextFile + "'.");
 
         if (nextFile.exists()) {
             if (nextFile.isDirectory()) {
@@ -378,18 +379,18 @@
             stream = new PrintWriter(new FileOutputStream(nextFile), true);
         } catch (SecurityException e) {
             Trace.trace.errorm(
-                "Security exception when opening new trace file '" +
-                nextFile + "'.");
+              "Security exception when opening new trace file '" +
+              nextFile + "'.");
             throw e;
         } catch (FileNotFoundException e) {
             Trace.trace.errorm(
-                "Could not open new trace file '" +
-                nextFile + "'.");
+              "Could not open new trace file '" +
+              nextFile + "'.");
             throw e;
         } catch (IOException e) {
             Trace.trace.errorm(
-                "Unknown error when opening new trace file '" +
-                nextFile + "'.");
+              "Unknown error when opening new trace file '" +
+              nextFile + "'.");
             throw e;
         }
     }



1.7       +1 -0      e/src/jsrc/org/erights/e/develop/trace/TraceMessage.java

Index: TraceMessage.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/develop/trace/TraceMessage.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- TraceMessage.java	2001/09/06 09:55:43	1.6
+++ TraceMessage.java	2001/11/10 19:40:39	1.7
@@ -25,6 +25,7 @@
  */
 
 //import org.erights.e.develop.assertion.*;
+
 import java.util.Date;
 
 /**



1.8       +2 -2      e/src/jsrc/org/erights/e/develop/trace/TraceMessageAcceptor.java

Index: TraceMessageAcceptor.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/develop/trace/TraceMessageAcceptor.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- TraceMessageAcceptor.java	2001/09/06 18:01:31	1.7
+++ TraceMessageAcceptor.java	2001/11/10 19:40:39	1.8
@@ -34,8 +34,8 @@
  * may not make them available to a user.
  */
 
-interface TraceMessageAcceptor
-{
+interface TraceMessageAcceptor {
+
     /**
      * Accept a message and do whatever is appropriate to make it
      * visible to a user, either now or later.



1.14      +6 -0      e/src/jsrc/org/erights/e/develop/trace/TraceMessageStringifier.java

Index: TraceMessageStringifier.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/develop/trace/TraceMessageStringifier.java,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- TraceMessageStringifier.java	2001/09/06 18:01:31	1.13
+++ TraceMessageStringifier.java	2001/11/10 19:40:39	1.14
@@ -41,12 +41,18 @@
  * By default, everything is shown.
  */
 class TraceMessageStringifier {
+
     // See the setter methods for the meanings of these booleans.
     private boolean myShowDate = true;
+
     private boolean myShowTime = true;
+
     private boolean myShowLocation = true;
+
     private boolean myShowSubsystem = true;
+
     private boolean myShowLevel = true;
+
     private String lineSeparator = System.getProperty("line.separator");
 
     // A minor concession to efficiency, as this is critical path.



1.9       +18 -16    e/src/jsrc/org/erights/e/develop/trace/TraceSubsystemMediator.java

Index: TraceSubsystemMediator.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/develop/trace/TraceSubsystemMediator.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- TraceSubsystemMediator.java	2001/09/06 09:55:43	1.8
+++ TraceSubsystemMediator.java	2001/11/10 19:40:39	1.9
@@ -40,8 +40,8 @@
  * Setting the thresholds used to answer the above question.
  */
 
-class TraceSubsystemMediator implements TraceConstants
-{
+class TraceSubsystemMediator implements TraceConstants {
+
     /** The subsystem that uses this mediator. */
     private String mySubsystem;
 
@@ -101,7 +101,7 @@
                            TraceMessageAcceptor[][] someAcceptors) {
         mySubsystem = aSubsystem;
         try {
-            myThresholds = (int[]) someThresholds.clone();
+            myThresholds = (int[])someThresholds.clone();
         } catch (Exception e) {
             Assertion.fail("CloneNotSupported should be impossible.");
         }
@@ -116,7 +116,7 @@
         for (int acceptorIndex = 0;
              acceptorIndex < deferToDefaultThreshold.length;
              acceptorIndex++) {
-           deferToDefaultThreshold[acceptorIndex] = true;
+            deferToDefaultThreshold[acceptorIndex] = true;
         }
         myCaches = new Vector();
     }
@@ -138,9 +138,9 @@
         message.date = new Date();
 
         for (int acceptorIndex = 0; acceptorIndex < myThresholds.length; acceptorIndex++) {
-            if (   myThresholds[acceptorIndex] <= message.level
-                || (   message.level == TIMING
-                    && myTimingBooleans[acceptorIndex])) {
+            if (myThresholds[acceptorIndex] <= message.level
+              || (message.level == TIMING
+              && myTimingBooleans[acceptorIndex])) {
                 for (int variant = 0;
                      variant < myAcceptors[acceptorIndex].length;
                      variant++) {
@@ -149,6 +149,7 @@
             }
         }
     }
+
     /** The common threshold is the most detailed (lowest). */
     private int commonThreshold() {
         int result = MAX_THRESHOLD;
@@ -160,6 +161,7 @@
         }
         return result;
     }
+
     /** The common timing is true if any acceptor times. */
     private boolean commonTiming() {
         for (int i = 0; i < myThresholds.length; i++) {
@@ -182,7 +184,7 @@
         newCache.myMediator = this;
         if (Trace.trace != null) {
             Trace.trace.debugm("The common Threshold is " +
-                TraceLevelTranslator.terse(commonThreshold()));
+                               TraceLevelTranslator.terse(commonThreshold()));
         }
         updateOneThresholdCache(newCache, commonThreshold());
         updateOneTimingCache(newCache, commonTiming());
@@ -199,11 +201,11 @@
      * value.
      */
     /*package*/ void setOneThreshold(int acceptorIndex, int newValue,
-                                int reason) {
+                                     int reason) {
         Trace.trace.eventm("Subsystem " + mySubsystem + "'s " +
-            acceptorNames[acceptorIndex] + " threshold is being set to " +
-            TraceLevelTranslator.terse(newValue) + " because of " +
-            reasonNames[reason] + " change.");
+                           acceptorNames[acceptorIndex] + " threshold is being set to " +
+                           TraceLevelTranslator.terse(newValue) + " because of " +
+                           reasonNames[reason] + " change.");
         deferToDefaultThreshold[acceptorIndex] = (reason == FROM_DEFAULT);
 
         // We don't need to go through the following rigamarole
@@ -242,8 +244,8 @@
      */
     /*package*/ void setTiming(int acceptorIndex, boolean newValue) {
         Trace.trace.eventm("Subsystem " + mySubsystem + "'s " +
-            acceptorNames[acceptorIndex] + " timing value is being set to " +
-            newValue + ".");
+                           acceptorNames[acceptorIndex] + " timing value is being set to " +
+                           newValue + ".");
 
         boolean previousCommonTiming = commonTiming();
         myTimingBooleans[acceptorIndex] = newValue;
@@ -279,10 +281,10 @@
     private void updateOneThresholdCache(Trace tr, int commonThreshold) {
         if (Trace.trace != null) {
             Trace.trace.debugm("Updating " + tr + " to " +
-                              TraceLevelTranslator.terse(commonThreshold));
+                               TraceLevelTranslator.terse(commonThreshold));
         }
         tr.verbose = tr.debug = tr.event = tr.usage = tr.warning =
-            tr.error = false;
+          tr.error = false;
         switch (commonThreshold) {
             case VERBOSE:
                 tr.verbose = true;  // fallthrough intentional



1.7       +8 -8      e/src/jsrc/org/erights/e/develop/trace/TraceTxtVersionNamer.java

Index: TraceTxtVersionNamer.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/develop/trace/TraceTxtVersionNamer.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- TraceTxtVersionNamer.java	2001/09/06 18:01:31	1.6
+++ TraceTxtVersionNamer.java	2001/11/10 19:40:39	1.7
@@ -32,7 +32,7 @@
  */
 
 class TraceTxtVersionNamer extends TraceVersionNamer
-        implements TraceConstants {
+  implements TraceConstants {
 
     /** The length of the ".txt" extension, for convenience. */
     static private final int extlen = LOG_EXTENSION.length();
@@ -41,16 +41,16 @@
         super(aFile);
     }
     /*package*/ File constructVersion(int sequence) {
-            return new File(myDir, myBasename + sequence + LOG_EXTENSION);
+        return new File(myDir, myBasename + sequence + LOG_EXTENSION);
     }
     /*package*/ String fetchBasename() {
         // Showing that the trailing "." is part of the basename, for clarity.
         return myName.substring(0, myName.length() - extlen) + ".";
     }
     /*package*/ int getSeq(String filename) {
-            String possibleSeqString =
-                filename.substring(0, filename.length() - extlen).
-                         substring(myBasename.length());
+        String possibleSeqString =
+          filename.substring(0, filename.length() - extlen).
+          substring(myBasename.length());
 
         try {
             return Integer.parseInt(possibleSeqString);
@@ -61,8 +61,8 @@
     }
     /*package*/ boolean mightHaveSeq(String filename) {
         int minlen = myBasename.length() + 1 + extlen;
-            return filename.length() >= minlen &&
-                   filename.toLowerCase().startsWith(myBasename.toLowerCase()) &&
-                   filename.toLowerCase().endsWith(LOG_EXTENSION);
+        return filename.length() >= minlen &&
+          filename.toLowerCase().startsWith(myBasename.toLowerCase()) &&
+          filename.toLowerCase().endsWith(LOG_EXTENSION);
     }
 }



1.9       +7 -5      e/src/jsrc/org/erights/e/develop/trace/TraceVersionNamer.java

Index: TraceVersionNamer.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/develop/trace/TraceVersionNamer.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- TraceVersionNamer.java	2001/09/06 09:55:43	1.8
+++ TraceVersionNamer.java	2001/11/10 19:40:39	1.9
@@ -38,6 +38,7 @@
  * the original name.
  */
 class TraceVersionNamer implements TraceConstants {
+
     /** The file for which a version number is being created. */
     /*package*/ File myFile;
 
@@ -68,9 +69,9 @@
 
         myBasename = fetchBasename();
         Trace.trace.debugm("Finding next version of " +
-                          myFile + "(" +
-                          myDir + " " + myName +
-                          " " + myBasename + ")");
+                           myFile + "(" +
+                           myDir + " " + myName +
+                           " " + myBasename + ")");
     }
     /** Create a backup file name, given a sequence number. */
     /*package*/ File constructVersion(int sequence) {
@@ -120,6 +121,7 @@
             return -1;
         }
     }
+
     static public void main(String[] args) {
         TraceController.setProperty("TraceLog_trace", "debug");
         TraceVersionNamer v;
@@ -149,7 +151,7 @@
     /*package*/ boolean mightHaveSeq(String filename) {
         int minlen = myBasename.length() + 1;
         return filename.length() >= minlen
-               && filename.toLowerCase().startsWith(myBasename.toLowerCase());
+          && filename.toLowerCase().startsWith(myBasename.toLowerCase());
     }
 
     /**
@@ -181,7 +183,7 @@
                 Trace.trace.verbosem(files[i] + " is not in version file format.");
             }
         }
-        File retval = constructVersion(highestSeq+1);
+        File retval = constructVersion(highestSeq + 1);
         Trace.trace.eventm("Backup version for " + myFile + " is " + retval);
         return retval;
     }



1.29      +11 -6     e/src/jsrc/org/erights/e/elang/evm/AssignExpr.java

Index: AssignExpr.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elang/evm/AssignExpr.java,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -r1.28 -r1.29
--- AssignExpr.java	2001/11/09 01:17:20	1.28
+++ AssignExpr.java	2001/11/10 19:40:39	1.29
@@ -18,13 +18,14 @@
 
 Contributor(s): ______________________________________.
 */
+
+import org.erights.e.develop.exception.NestedException;
 import org.erights.e.elang.scope.EvalContext;
 import org.erights.e.elang.visitors.ETreeVisitor;
 import org.erights.e.elib.eio.TextWriter;
 import org.erights.e.elib.ref.Ref;
 import org.erights.e.elib.tables.FlexList;
 import org.erights.e.elib.tables.FlexMap;
-import org.erights.e.develop.exception.NestedException;
 
 import java.io.IOException;
 
@@ -46,6 +47,7 @@
 public class AssignExpr extends EExpr {
 
     private NounExpr myNoun;
+
     private EExpr myRValue;
 
     /**
@@ -78,7 +80,7 @@
      */
     /*package*/ Object subEval(EvalContext ctx, boolean forValue) {
         Object result = myRValue.subEval(ctx, true);
-		try {
+        try {
             myNoun.assign(ctx, result);
         } catch (Exception ex) {
             throw new NestedException("assigning " + myNoun.name(), ex);
@@ -91,8 +93,7 @@
      */
     public boolean matchBind(Object[] args,
                              Object specimen,
-                             FlexList bindings)
-    {
+                             FlexList bindings) {
         AssignExpr other;
         try {
             other = (AssignExpr)Ref.resolution(specimen);
@@ -108,12 +109,16 @@
     /**
      *
      */
-    public EExpr noun() { return myNoun; }
+    public EExpr noun() {
+        return myNoun;
+    }
 
     /**
      *
      */
-    public EExpr rValue() { return myRValue; }
+    public EExpr rValue() {
+        return myRValue;
+    }
 
     /**
      *



1.31      +12 -7     e/src/jsrc/org/erights/e/elang/evm/CallExpr.java

Index: CallExpr.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elang/evm/CallExpr.java,v
retrieving revision 1.30
retrieving revision 1.31
diff -u -r1.30 -r1.31
--- CallExpr.java	2001/11/09 01:17:20	1.30
+++ CallExpr.java	2001/11/10 19:40:39	1.31
@@ -109,8 +109,7 @@
      */
     public boolean matchBind(Object[] args,
                              Object specimen,
-                             FlexList bindings)
-    {
+                             FlexList bindings) {
         CallExpr other;
         try {
             other = (CallExpr)Ref.resolution(specimen);
@@ -120,8 +119,8 @@
             return false;
         }
         return (myRecipient.matchBind(args, other.myRecipient, bindings)
-                && myVerb.equals(other.myVerb)
-                && matchBind(myArgs, args, other.myArgs, bindings));
+          && myVerb.equals(other.myVerb)
+          && matchBind(myArgs, args, other.myArgs, bindings));
     }
 
     /**
@@ -142,15 +141,21 @@
     /**
      *
      */
-    public EExpr recipient() { return myRecipient; }
+    public EExpr recipient() {
+        return myRecipient;
+    }
 
     /**
      *
      */
-    public String verb() { return myVerb; }
+    public String verb() {
+        return myVerb;
+    }
 
     /**
      *
      */
-    public EExpr[] args() { return myArgs; }
+    public EExpr[] args() {
+        return myArgs;
+    }
 }



1.17      +14 -7     e/src/jsrc/org/erights/e/elang/evm/CatchExpr.java

Index: CatchExpr.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elang/evm/CatchExpr.java,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -r1.16 -r1.17
--- CatchExpr.java	2001/11/09 01:17:20	1.16
+++ CatchExpr.java	2001/11/10 19:40:39	1.17
@@ -45,7 +45,9 @@
 public class CatchExpr extends EExpr {
 
     private EExpr myAttempt;
+
     private Pattern myPattern;
+
     private EExpr myCatcher;
 
     /**
@@ -105,8 +107,7 @@
      */
     public boolean matchBind(Object[] args,
                              Object specimen,
-                             FlexList bindings)
-    {
+                             FlexList bindings) {
         CatchExpr other;
         try {
             other = (CatchExpr)Ref.resolution(specimen);
@@ -116,24 +117,30 @@
             return false;
         }
         return (myAttempt.matchBind(args, other.myAttempt, bindings)
-                && myPattern.matchBind(args, other.myPattern, bindings)
-                && myCatcher.matchBind(args, other.myCatcher, bindings));
+          && myPattern.matchBind(args, other.myPattern, bindings)
+          && myCatcher.matchBind(args, other.myCatcher, bindings));
     }
 
     /**
      *
      */
-    public EExpr attempt()   { return myAttempt; }
+    public EExpr attempt() {
+        return myAttempt;
+    }
 
     /**
      *
      */
-    public Pattern pattern() { return myPattern; }
+    public Pattern pattern() {
+        return myPattern;
+    }
 
     /**
      *
      */
-    public EExpr katch()     { return myCatcher; }
+    public EExpr katch() {
+        return myCatcher;
+    }
 
     /**
      *



1.16      +8 -7      e/src/jsrc/org/erights/e/elang/evm/CdrPattern.java

Index: CdrPattern.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elang/evm/CdrPattern.java,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -r1.15 -r1.16
--- CdrPattern.java	2001/11/09 01:17:20	1.15
+++ CdrPattern.java	2001/11/10 19:40:39	1.16
@@ -44,6 +44,7 @@
 public class CdrPattern extends Pattern {
 
     private ListPattern myStart;
+
     private Pattern myRest;
 
     /**
@@ -73,8 +74,7 @@
      */
     public boolean matchBind(Object[] args,
                              Object specimen,
-                             FlexList bindings)
-    {
+                             FlexList bindings) {
         CdrPattern other;
         try {
             other = (CdrPattern)Ref.resolution(specimen);
@@ -84,7 +84,7 @@
             return false;
         }
         return (myStart.matchBind(args, other.myStart, bindings)
-                && myRest.matchBind(args, other.myRest, bindings));
+          && myRest.matchBind(args, other.myRest, bindings));
     }
 
     /**
@@ -100,9 +100,8 @@
      *
      */
     /*package*/ void testMatch(EvalContext ctx,
-                                Object specimen,
-                                OneArgFunc optEjector)
-    {
+                               Object specimen,
+                               OneArgFunc optEjector) {
         //XXX should really coerce to a list here
         specimen = Ref.resolution(specimen);
         if (specimen == null) {
@@ -140,5 +139,7 @@
     /**
      *
      */
-    public String optName() { return null; }
+    public String optName() {
+        return null;
+    }
 }



1.30      +10 -6     e/src/jsrc/org/erights/e/elang/evm/DefineExpr.java

Index: DefineExpr.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elang/evm/DefineExpr.java,v
retrieving revision 1.29
retrieving revision 1.30
diff -u -r1.29 -r1.30
--- DefineExpr.java	2001/11/09 01:17:20	1.29
+++ DefineExpr.java	2001/11/10 19:40:39	1.30
@@ -50,6 +50,7 @@
 public class DefineExpr extends EExpr {
 
     private Pattern myPattern;
+
     private EExpr myRValue;
 
     /**
@@ -105,9 +106,8 @@
      *
      */
     public boolean matchBind(Object[] args,
-                              Object specimen,
-                             FlexList bindings)
-    {
+                             Object specimen,
+                             FlexList bindings) {
         DefineExpr other;
         try {
             other = (DefineExpr)Ref.resolution(specimen);
@@ -117,13 +117,15 @@
             return false;
         }
         return (myPattern.matchBind(args, other.myPattern, bindings)
-                && myRValue.matchBind(args, other.myRValue, bindings));
+          && myRValue.matchBind(args, other.myRValue, bindings));
     }
 
     /**
      *
      */
-    public Pattern pattern() { return myPattern; }
+    public Pattern pattern() {
+        return myPattern;
+    }
 
     /**
      *
@@ -144,5 +146,7 @@
     /**
      *
      */
-    public EExpr rValue() { return myRValue; }
+    public EExpr rValue() {
+        return myRValue;
+    }
 }



1.29      +8 -7      e/src/jsrc/org/erights/e/elang/evm/EExpr.java

Index: EExpr.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elang/evm/EExpr.java,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -r1.28 -r1.29
--- EExpr.java	2001/11/09 01:17:20	1.28
+++ EExpr.java	2001/11/10 19:40:39	1.29
@@ -18,15 +18,14 @@
 
 Contributor(s): ______________________________________.
 */
+
 import org.erights.e.elang.scope.EvalContext;
 import org.erights.e.elang.scope.Scope;
 import org.erights.e.elang.scope.ScopeMap;
 import org.erights.e.elang.visitors.BindFramesVisitor;
 import org.erights.e.elang.visitors.SubstVisitor;
-
 import org.erights.e.elib.eio.TextWriter;
 import org.erights.e.elib.prim.E;
-import org.erights.e.elib.tables.ConstMap;
 
 import java.io.IOException;
 import java.util.List;
@@ -41,10 +40,12 @@
 public abstract class EExpr extends ENode {
 
     static public EExpr TheLastTransformed = new NounExpr("none");
+
     /**
      *
      */
-    protected EExpr() {}
+    protected EExpr() {
+    }
 
     /**
      * @see #subPrintOn
@@ -79,8 +80,8 @@
         EExpr realExpr = vis.xformEExpr(this);
         EvalContext ctx = scope.newContext(vis.maxLocals());
         Object result = realExpr.subEval(ctx, true);
-	// HACK expose the internal transformed expression
-	TheLastTransformed = realExpr;
+        // HACK expose the internal transformed expression
+        TheLastTransformed = realExpr;
         return result;
     }
 
@@ -122,9 +123,9 @@
      * @param all the EExprs to accumulate.
      */
     static protected void appendAllTo(List accum, EExpr[] all) {
-     	for (int i = 0, max = all.length; i < max; i++) {
+        for (int i = 0, max = all.length; i < max; i++) {
             all[i].appendTo(accum);
-    	}
+        }
     }
 
 }



1.25      +3 -1      e/src/jsrc/org/erights/e/elang/evm/EImpl.java

Index: EImpl.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elang/evm/EImpl.java,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -r1.24 -r1.25
--- EImpl.java	2001/11/09 01:17:20	1.24
+++ EImpl.java	2001/11/10 19:40:39	1.25
@@ -102,7 +102,9 @@
     /**
      * XXX controversial whether this should be made public
      */
-    /*package*/ Script script() { return myScript; }
+    /*package*/ Script script() {
+        return myScript;
+    }
 
     /**
      * The miranda printOn will call this.  Also, it may be called by normal



1.10      +1 -1      e/src/jsrc/org/erights/e/elang/evm/EImplByProxy.java

Index: EImplByProxy.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elang/evm/EImplByProxy.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- EImplByProxy.java	2001/11/09 01:17:20	1.9
+++ EImplByProxy.java	2001/11/10 19:40:39	1.10
@@ -18,7 +18,7 @@
 
 Contributor(s): ______________________________________.
 */
-import org.erights.e.elang.scope.Scope;
+
 import org.erights.e.elang.scope.OuterScope;
 import org.erights.e.elib.base.Script;
 import org.erights.e.elib.serial.PassByProxy;



1.7       +0 -2      e/src/jsrc/org/erights/e/elang/evm/EMeta.java

Index: EMeta.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elang/evm/EMeta.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- EMeta.java	2001/11/09 01:17:20	1.6
+++ EMeta.java	2001/11/10 19:40:39	1.7
@@ -6,8 +6,6 @@
 
 import java.io.IOException;
 
-import java.io.IOException;
-
 
 /**
  * Gives meta-level access to the object it wraps (its subject).



1.15      +35 -25    e/src/jsrc/org/erights/e/elang/evm/EMethod.java

Index: EMethod.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elang/evm/EMethod.java,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- EMethod.java	2001/11/09 01:17:20	1.14
+++ EMethod.java	2001/11/10 19:40:39	1.15
@@ -29,9 +29,7 @@
 
 import java.io.IOException;
 
-import java.io.IOException;
 
-
 /**
  * BNF: <docComment> "to" verb "(" patterns ")" "{" expr "}" <p>
  *
@@ -43,12 +41,17 @@
 public class EMethod extends ENode {
 
     private String myDocComment;
+
     private String myVerb;
+
     private Pattern[] myPatterns;
+
     private EExpr myReturnGuard;
+
     private EExpr myBody;
-    private int myLocalCount= -1;
-    
+
+    private int myLocalCount = -1;
+
     /**
      * The constructor interns the verb
      */
@@ -56,8 +59,7 @@
                    String verb,
                    Pattern[] patterns,
                    EExpr returnGuard,
-                   EExpr body)
-    {
+                   EExpr body) {
         if (docComment == null) {
             docComment = "Oops, sysopsis was null";
         }
@@ -73,12 +75,11 @@
      * This method assumes the verb is interned.
      */
     public EMethod(String docComment,
-                   String verb, 
-                   Pattern[] patterns, 
+                   String verb,
+                   Pattern[] patterns,
                    EExpr returnGuard,
                    EExpr body,
-                   int localCount)
-    {
+                   int localCount) {
         if (docComment == null) {
             docComment = "Oops, sysopsis was null";
         }
@@ -119,15 +120,15 @@
      *
      */
     public Object execute(Object self, Object[] args) {
-        EvalContext ctx = ((EImpl) self).newContext(myLocalCount);
+        EvalContext ctx = ((EImpl)self).newContext(myLocalCount);
         for (int i = 0, max = args.length; i < max; i++) {
             myPatterns[i].testMatch(ctx, args[i], null);
         }
         Object vg = myReturnGuard.subEval(ctx, true);
-        ValueGuard valueGuard = (ValueGuard) E.as(vg, ValueGuard.class);
-        
+        ValueGuard valueGuard = (ValueGuard)E.as(vg, ValueGuard.class);
+
         //XXX forValue should be false if myReturnGuard == e`void`
-        Object result = myBody.subEval(ctx, true); 
+        Object result = myBody.subEval(ctx, true);
         return valueGuard.coerce(result, null);
     }
 
@@ -136,8 +137,7 @@
      */
     public boolean matchBind(Object[] args,
                              Object specimen,
-                             FlexList bindings)
-    {
+                             FlexList bindings) {
         EMethod other;
         try {
             other = (EMethod)Ref.resolution(specimen);
@@ -147,35 +147,45 @@
             return false;
         }
         return (myVerb.equals(other.myVerb)
-                && matchBind(myPatterns, args, other.myPatterns, bindings)
-                && myReturnGuard.matchBind(args, other.myReturnGuard, bindings)
-                && myBody.matchBind(args, other.myBody, bindings));
+          && matchBind(myPatterns, args, other.myPatterns, bindings)
+          && myReturnGuard.matchBind(args, other.myReturnGuard, bindings)
+          && myBody.matchBind(args, other.myBody, bindings));
     }
 
     /**
      *
      */
-    public String docComment() { return myDocComment; }
+    public String docComment() {
+        return myDocComment;
+    }
 
     /**
      *
      */
-    public String verb() { return myVerb; }
+    public String verb() {
+        return myVerb;
+    }
 
-   /**
+    /**
      *
      */
-    public Pattern[] patterns() { return myPatterns; }
+    public Pattern[] patterns() {
+        return myPatterns;
+    }
 
     /**
      *
      */
-    public EExpr returnGuard() { return myReturnGuard; }
+    public EExpr returnGuard() {
+        return myReturnGuard;
+    }
 
     /**
      *
      */
-    public EExpr body() { return myBody; }
+    public EExpr body() {
+        return myBody;
+    }
 
     /**
      *



1.24      +22 -13    e/src/jsrc/org/erights/e/elang/evm/EMethodNode.java

Index: EMethodNode.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elang/evm/EMethodNode.java,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -r1.23 -r1.24
--- EMethodNode.java	2001/11/09 04:47:34	1.23
+++ EMethodNode.java	2001/11/10 19:40:39	1.24
@@ -35,7 +35,9 @@
 public class EMethodNode extends MethodNode {
 
     private EMethod myMethod;
+
     private String myVerb;
+
     private int myArity;
 
     /**
@@ -43,8 +45,7 @@
      */
     public EMethodNode(String verb,
                        int arity,
-                       EMethod method)
-    {
+                       EMethod method) {
         myVerb = verb.intern();
         myArity = arity;
         myMethod = method;
@@ -61,7 +62,7 @@
      */
     public Object execute(Object self, String aVerb, Object[] args) {
         if (myArity != args.length
-                || (myVerb != aVerb && ! myVerb.equals(aVerb)) ) {
+          || (myVerb != aVerb && !myVerb.equals(aVerb))) {
             throw ExceptionMgr.asSafe(new NoSuchMethodException(aVerb + "/"
                                                                 + args.length));
         }
@@ -71,46 +72,54 @@
     /**
      *
      */
-    public String verb() { return myVerb; }
+    public String verb() {
+        return myVerb;
+    }
 
     /**
      *
      */
-    public String optTypedVerb() { return null; }
+    public String optTypedVerb() {
+        return null;
+    }
 
     /**
      *
      */
-    public int arity() { return myArity; }
+    public int arity() {
+        return myArity;
+    }
 
     /**
      *
      */
-    public EMethod method() { return myMethod; }
+    public EMethod method() {
+        return myMethod;
+    }
 
     /**
      * Do nothing
      */
-    public void addJavaMemberNodesToMap(FlexMap map) {}
+    public void addJavaMemberNodesToMap(FlexMap map) {
+    }
 
     /**
      * Ignores docComment
      */
     public boolean matchBind(Object[] args,
                              Object specimen,
-                             FlexList bindings)
-    {
+                             FlexList bindings) {
         EMethodNode other;
         try {
-            other = (EMethodNode) Ref.resolution(specimen);
+            other = (EMethodNode)Ref.resolution(specimen);
         } catch (ClassCastException cce) {
             //using a try/catch since success is typical and we have
             //to pay for the test in the cast anyway
             return false;
         }
         return (myArity == other.myArity
-                && myVerb.equals(other.myVerb)
-                && myMethod.matchBind(args, other.myMethod, bindings));
+          && myVerb.equals(other.myVerb)
+          && myMethod.matchBind(args, other.myMethod, bindings));
     }
 
 }



1.7       +3 -3      e/src/jsrc/org/erights/e/elang/evm/ENode.java

Index: ENode.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elang/evm/ENode.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- ENode.java	2001/11/09 01:17:20	1.6
+++ ENode.java	2001/11/10 19:40:39	1.7
@@ -69,11 +69,11 @@
     /*package*/ abstract StaticScope computeStaticScope();
 
     /**
-      * Make a copy.
-      */
+     * Make a copy.
+     */
     public ENode copy() {
         try {
-            ENode node = (ENode) clone();
+            ENode node = (ENode)clone();
             node.cleanCopy();
             return node;
         } catch (CloneNotSupportedException ex) {



1.12      +11 -8     e/src/jsrc/org/erights/e/elang/evm/EScript.java

Index: EScript.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elang/evm/EScript.java,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- EScript.java	2001/11/09 01:17:20	1.11
+++ EScript.java	2001/11/10 19:40:39	1.12
@@ -18,6 +18,7 @@
 
 Contributor(s): ______________________________________.
 */
+
 import org.erights.e.elang.visitors.ETreeVisitor;
 import org.erights.e.elib.eio.TextWriter;
 import org.erights.e.elib.ref.Ref;
@@ -26,8 +27,6 @@
 
 import java.io.IOException;
 
-import java.io.IOException;
-
 /**
  * <pre>
  * BNF: script ::= "{" method* matcher? "}" ("meta" script)?
@@ -43,6 +42,7 @@
 public class EScript extends ENode {
 
     /*package*/ EMethodNode[] myOptMethods;
+
     private Matcher myOptMatcher;
 
     /**
@@ -51,7 +51,7 @@
     public EScript(EMethodNode[] optMethods, Matcher optMatcher) {
         if (optMethods == null && optMatcher == null) {
             throw new RuntimeException(
-            "At least one of optMethods or optMatcher must not be null");
+              "At least one of optMethods or optMatcher must not be null");
         }
         myOptMethods = optMethods;
         myOptMatcher = optMatcher;
@@ -60,12 +60,16 @@
     /**
      *
      */
-    public ConstList optMethods() { return ConstList.fromArray(myOptMethods); }
+    public ConstList optMethods() {
+        return ConstList.fromArray(myOptMethods);
+    }
 
     /**
      *
      */
-    public Matcher optMatcher() { return myOptMatcher; }
+    public Matcher optMatcher() {
+        return myOptMatcher;
+    }
 
     /**
      *
@@ -96,8 +100,7 @@
      */
     public boolean matchBind(Object[] args,
                              Object specimen,
-                             FlexList bindings)
-    {
+                             FlexList bindings) {
         EScript other;
         try {
             other = (EScript)Ref.resolution(specimen);
@@ -113,7 +116,7 @@
             for (int i = 0, max = myOptMethods.length; i < max; i++) {
                 EMethod me = myOptMethods[i].method();
                 EMethod him = other.myOptMethods[i].method();
-                if (! matchBind(me, args, him, bindings)) {
+                if (!matchBind(me, args, him, bindings)) {
                     return false;
                 }
             }



1.26      +9 -5      e/src/jsrc/org/erights/e/elang/evm/EscapeExpr.java

Index: EscapeExpr.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elang/evm/EscapeExpr.java,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -r1.25 -r1.26
--- EscapeExpr.java	2001/11/09 01:17:20	1.25
+++ EscapeExpr.java	2001/11/10 19:40:39	1.26
@@ -46,6 +46,7 @@
 public class EscapeExpr extends EExpr {
 
     private Pattern myExitPatt;
+
     private EExpr myRValue;
 
     /**
@@ -90,15 +91,16 @@
     /**
      *
      */
-    public Pattern exitPattern() { return myExitPatt; }
+    public Pattern exitPattern() {
+        return myExitPatt;
+    }
 
     /**
      *
      */
     public boolean matchBind(Object[] args,
                              Object specimen,
-                             FlexList bindings)
-    {
+                             FlexList bindings) {
         EscapeExpr other;
         try {
             other = (EscapeExpr)Ref.resolution(specimen);
@@ -108,7 +110,7 @@
             return false;
         }
         return (myExitPatt.matchBind(args, other.myExitPatt, bindings)
-                && myRValue.matchBind(args, other.myRValue, bindings));
+          && myRValue.matchBind(args, other.myRValue, bindings));
     }
 
     /**
@@ -124,5 +126,7 @@
     /**
      *
      */
-    public EExpr rValue() { return myRValue; }
+    public EExpr rValue() {
+        return myRValue;
+    }
 }



1.11      +7 -12     e/src/jsrc/org/erights/e/elang/evm/FinalPattern.java

Index: FinalPattern.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elang/evm/FinalPattern.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- FinalPattern.java	2001/11/09 01:17:20	1.10
+++ FinalPattern.java	2001/11/10 19:40:39	1.11
@@ -21,18 +21,11 @@
 
 import org.erights.e.elang.scope.EvalContext;
 import org.erights.e.elang.visitors.ETreeVisitor;
-import org.erights.e.elib.eio.TextWriter;
 import org.erights.e.elib.prim.E;
-import org.erights.e.elib.ref.Ref;
 import org.erights.e.elib.slot.ValueGuard;
-import org.erights.e.elib.tables.ConstMap;
-import org.erights.e.elib.tables.FlexList;
-import org.erights.e.elib.tables.FlexMap;
 import org.erights.e.elib.util.OneArgFunc;
 
-import java.io.IOException;
 
-
 /**
  * BNF: Identifier ':' expr <p>
  *
@@ -61,6 +54,7 @@
 public class FinalPattern extends NounPattern {
 
     private NounExpr myNoun;
+
     private EExpr myValueGuard;
 
     /**
@@ -95,19 +89,20 @@
     /**
      *
      */
-    protected EExpr guardExpr() { return myValueGuard; }
+    protected EExpr guardExpr() {
+        return myValueGuard;
+    }
 
     /**
      *
      */
     /*package*/ void testMatch(EvalContext ctx,
-                                Object specimen,
-                                OneArgFunc optEjector)
-    {
+                               Object specimen,
+                               OneArgFunc optEjector) {
         //Because of the well-formedness criterea, we may safely evaluate
         //this in the wrong order
         Object sg = myValueGuard.subEval(ctx, true);
-        ValueGuard valueGuard = (ValueGuard) E.as(sg, ValueGuard.class);
+        ValueGuard valueGuard = (ValueGuard)E.as(sg, ValueGuard.class);
         Object value = valueGuard.coerce(specimen, optEjector);
         myNoun.initFinal(ctx, value);
     }



1.15      +9 -5      e/src/jsrc/org/erights/e/elang/evm/FinallyExpr.java

Index: FinallyExpr.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elang/evm/FinallyExpr.java,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- FinallyExpr.java	2001/11/09 01:17:20	1.14
+++ FinallyExpr.java	2001/11/10 19:40:39	1.15
@@ -48,6 +48,7 @@
 public class FinallyExpr extends EExpr {
 
     private EExpr myAttempt;
+
     private EExpr myUnwinder;
 
     /**
@@ -91,8 +92,7 @@
      */
     public boolean matchBind(Object[] args,
                              Object specimen,
-                             FlexList bindings)
-    {
+                             FlexList bindings) {
         FinallyExpr other;
         try {
             other = (FinallyExpr)Ref.resolution(specimen);
@@ -102,18 +102,22 @@
             return false;
         }
         return (myAttempt.matchBind(args, other.myAttempt, bindings)
-                && myUnwinder.matchBind(args, other.myUnwinder, bindings));
+          && myUnwinder.matchBind(args, other.myUnwinder, bindings));
     }
 
     /**
      *
      */
-    public EExpr attempt()      { return myAttempt; }
+    public EExpr attempt() {
+        return myAttempt;
+    }
 
     /**
      *
      */
-    public EExpr unwinder()     { return myUnwinder; }
+    public EExpr unwinder() {
+        return myUnwinder;
+    }
 
     /**
      *



1.2       +1 -1      e/src/jsrc/org/erights/e/elang/evm/FrameFinalNounExpr.java

Index: FrameFinalNounExpr.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elang/evm/FrameFinalNounExpr.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- FrameFinalNounExpr.java	2001/11/09 04:47:34	1.1
+++ FrameFinalNounExpr.java	2001/11/10 19:40:39	1.2
@@ -68,7 +68,7 @@
      * unless overridden by a printOn method written in E.
      */
     public String toString() {
-        return ""+myIndex;
+        return "" + myIndex;
     }
 
     /**



1.2       +2 -2      e/src/jsrc/org/erights/e/elang/evm/FrameSlotNounExpr.java

Index: FrameSlotNounExpr.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elang/evm/FrameSlotNounExpr.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- FrameSlotNounExpr.java	2001/11/09 04:47:34	1.1
+++ FrameSlotNounExpr.java	2001/11/10 19:40:39	1.2
@@ -50,7 +50,7 @@
      *
      */
     public Slot getSlot(EvalContext ctx) {
-        return (Slot) ctx.field(myIndex);
+        return (Slot)ctx.field(myIndex);
     }
 
     /**
@@ -74,7 +74,7 @@
      * unless overridden by a printOn method written in E.
      */
     public String toString() {
-        return ""+myIndex;
+        return "" + myIndex;
     }
 
     /**



1.23      +4 -3      e/src/jsrc/org/erights/e/elang/evm/HideExpr.java

Index: HideExpr.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elang/evm/HideExpr.java,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -r1.22 -r1.23
--- HideExpr.java	2001/11/09 01:17:20	1.22
+++ HideExpr.java	2001/11/10 19:40:39	1.23
@@ -56,7 +56,9 @@
     /**
      *
      */
-    public EExpr block() { return myBlock; }
+    public EExpr block() {
+        return myBlock;
+    }
 
     /**
      *
@@ -77,8 +79,7 @@
      */
     public boolean matchBind(Object[] args,
                              Object specimen,
-                             FlexList bindings)
-    {
+                             FlexList bindings) {
         HideExpr other;
         try {
             other = (HideExpr)Ref.resolution(specimen);



1.24      +14 -8     e/src/jsrc/org/erights/e/elang/evm/IfExpr.java

Index: IfExpr.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elang/evm/IfExpr.java,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -r1.23 -r1.24
--- IfExpr.java	2001/11/09 01:17:20	1.23
+++ IfExpr.java	2001/11/10 19:40:39	1.24
@@ -28,7 +28,6 @@
 import java.io.IOException;
 
 
-
 /**
  * BNF: "if" "(" cond-expr ")" "{" then-expr "}" "else" "{" else-expr "}" <p>
  *
@@ -42,7 +41,9 @@
 public class IfExpr extends EExpr {
 
     private EExpr myTest;
+
     private EExpr myThen;
+
     private EExpr myElse;
 
     /**
@@ -74,7 +75,9 @@
     /**
      *
      */
-    public EExpr els()  { return myElse; }
+    public EExpr els() {
+        return myElse;
+    }
 
     /**
      *
@@ -96,8 +99,7 @@
      */
     public boolean matchBind(Object[] args,
                              Object specimen,
-                             FlexList bindings)
-    {
+                             FlexList bindings) {
         IfExpr other;
         try {
             other = (IfExpr)Ref.resolution(specimen);
@@ -107,8 +109,8 @@
             return false;
         }
         return (myTest.matchBind(args, other.myTest, bindings)
-                && myThen.matchBind(args, other.myThen, bindings)
-                && myElse.matchBind(args, other.myElse, bindings));
+          && myThen.matchBind(args, other.myThen, bindings)
+          && myElse.matchBind(args, other.myElse, bindings));
     }
 
     /**
@@ -126,10 +128,14 @@
     /**
      *
      */
-    public EExpr test() { return myTest; }
+    public EExpr test() {
+        return myTest;
+    }
 
     /**
      *
      */
-    public EExpr then() { return myThen; }
+    public EExpr then() {
+        return myThen;
+    }
 }



1.12      +5 -6      e/src/jsrc/org/erights/e/elang/evm/IgnorePattern.java

Index: IgnorePattern.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elang/evm/IgnorePattern.java,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- IgnorePattern.java	2001/11/09 01:17:20	1.11
+++ IgnorePattern.java	2001/11/10 19:40:39	1.12
@@ -40,7 +40,8 @@
     /**
      *
      */
-    public IgnorePattern() {}
+    public IgnorePattern() {
+    }
 
     /**
      *
@@ -61,8 +62,7 @@
      */
     public boolean matchBind(Object[] args,
                              Object specimen,
-                             FlexList bindings)
-    {
+                             FlexList bindings) {
         IgnorePattern other;
         try {
             other = (IgnorePattern)Ref.resolution(specimen);
@@ -92,9 +92,8 @@
      *
      */
     /*package*/ void testMatch(EvalContext ctx,
-                                Object specimen,
-                                OneArgFunc optEjector)
-    {
+                               Object specimen,
+                               OneArgFunc optEjector) {
         return;
     }
 



1.14      +9 -7      e/src/jsrc/org/erights/e/elang/evm/ListPattern.java

Index: ListPattern.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elang/evm/ListPattern.java,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- ListPattern.java	2001/11/09 01:17:20	1.13
+++ ListPattern.java	2001/11/10 19:40:39	1.14
@@ -73,8 +73,7 @@
      */
     public boolean matchBind(Object[] args,
                              Object specimen,
-                             FlexList bindings)
-    {
+                             FlexList bindings) {
         ListPattern other;
         try {
             other = (ListPattern)Ref.resolution(specimen);
@@ -97,9 +96,8 @@
      *
      */
     /*package*/ void testMatch(EvalContext ctx,
-                                Object specimen,
-                                OneArgFunc optEjector)
-    {
+                               Object specimen,
+                               OneArgFunc optEjector) {
         // TODO this looks a lot like the method in CdrPattern
         //XXX should really coerce to a list here
         specimen = Ref.resolution(specimen);
@@ -133,10 +131,14 @@
     /**
      *
      */
-    /*package*/ Pattern[] subPatterns() { return mySubs; }
+    /*package*/ Pattern[] subPatterns() {
+        return mySubs;
+    }
 
     /**
      *
      */
-    public String optName() { return null; }
+    public String optName() {
+        return null;
+    }
 }



1.23      +6 -4      e/src/jsrc/org/erights/e/elang/evm/LiteralExpr.java

Index: LiteralExpr.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elang/evm/LiteralExpr.java,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -r1.22 -r1.23
--- LiteralExpr.java	2001/11/09 01:17:20	1.22
+++ LiteralExpr.java	2001/11/10 19:40:39	1.23
@@ -18,6 +18,7 @@
 
 Contributor(s): ______________________________________.
 */
+
 import org.erights.e.develop.format.StringHelper;
 import org.erights.e.elang.scope.EvalContext;
 import org.erights.e.elang.visitors.ETreeVisitor;
@@ -73,8 +74,7 @@
      */
     public boolean matchBind(Object[] args,
                              Object specimen,
-                             FlexList bindings)
-    {
+                             FlexList bindings) {
         LiteralExpr other;
         try {
             other = (LiteralExpr)Ref.resolution(specimen);
@@ -99,7 +99,7 @@
     public String printRep() {
         if (myValue instanceof Character) {
             String str = StringHelper.quote(myValue.toString());
-            return "\'" + str.substring(1, str.length()-1) + "\'";
+            return "\'" + str.substring(1, str.length() - 1) + "\'";
 
         } else if (myValue instanceof String) {
             return StringHelper.quote((String)myValue);
@@ -118,5 +118,7 @@
     /**
      *
      */
-    public Object value() { return myValue; }
+    public Object value() {
+        return myValue;
+    }
 }



1.2       +1 -1      e/src/jsrc/org/erights/e/elang/evm/LiteralNounExpr.java

Index: LiteralNounExpr.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elang/evm/LiteralNounExpr.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- LiteralNounExpr.java	2001/11/09 04:47:34	1.1
+++ LiteralNounExpr.java	2001/11/10 19:40:39	1.2
@@ -62,7 +62,7 @@
      * unless overridden by a printOn method written in E.
      */
     public String toString() {
-        return ""+myValue;
+        return "" + myValue;
     }
 
     /**



1.2       +1 -1      e/src/jsrc/org/erights/e/elang/evm/LiteralSlotNounExpr.java

Index: LiteralSlotNounExpr.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elang/evm/LiteralSlotNounExpr.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- LiteralSlotNounExpr.java	2001/11/09 04:47:34	1.1
+++ LiteralSlotNounExpr.java	2001/11/10 19:40:39	1.2
@@ -61,7 +61,7 @@
      * unless overridden by a printOn method written in E.
      */
     public String toString() {
-        return ""+mySlot;
+        return "" + mySlot;
     }
 
     /**



1.2       +1 -1      e/src/jsrc/org/erights/e/elang/evm/LocalFinalNounExpr.java

Index: LocalFinalNounExpr.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elang/evm/LocalFinalNounExpr.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- LocalFinalNounExpr.java	2001/11/09 04:47:34	1.1
+++ LocalFinalNounExpr.java	2001/11/10 19:40:39	1.2
@@ -83,7 +83,7 @@
      * unless overridden by a printOn method written in E.
      */
     public String toString() {
-        return ""+myIndex;
+        return "" + myIndex;
     }
 
     /**



1.2       +2 -2      e/src/jsrc/org/erights/e/elang/evm/LocalSlotNounExpr.java

Index: LocalSlotNounExpr.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elang/evm/LocalSlotNounExpr.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- LocalSlotNounExpr.java	2001/11/09 04:47:34	1.1
+++ LocalSlotNounExpr.java	2001/11/10 19:40:39	1.2
@@ -50,7 +50,7 @@
      *
      */
     public Slot getSlot(EvalContext ctx) {
-        return (Slot) ctx.local(myIndex);
+        return (Slot)ctx.local(myIndex);
     }
 
     /**
@@ -82,6 +82,6 @@
      * unless overridden by a printOn method written in E.
      */
     public String toString() {
-        return ""+myIndex;
+        return "" + myIndex;
     }
 }



1.28      +11 -7     e/src/jsrc/org/erights/e/elang/evm/MatchBindExpr.java

Index: MatchBindExpr.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elang/evm/MatchBindExpr.java,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -r1.27 -r1.28
--- MatchBindExpr.java	2001/11/09 01:17:20	1.27
+++ MatchBindExpr.java	2001/11/10 19:40:39	1.28
@@ -29,7 +29,6 @@
 import java.io.IOException;
 
 
-
 /**
  * BNF: eExpr "=~" pattern <p>
  *
@@ -40,7 +39,9 @@
 public class MatchBindExpr extends EExpr {
 
     private EExpr mySpecimen;
+
     private Pattern myPattern;
+
     private NounExpr[] myOptBound;
 
     /**
@@ -81,7 +82,7 @@
             myPattern.testMatch(ctx, left, ej);
             return Boolean.TRUE;
         } catch (Throwable t) {
-            breakAll(ctx, (Throwable) ej.result(t));
+            breakAll(ctx, (Throwable)ej.result(t));
             return Boolean.FALSE;
         } finally {
             ej.disable();
@@ -109,8 +110,7 @@
      */
     public boolean matchBind(Object[] args,
                              Object specimen,
-                             FlexList bindings)
-    {
+                             FlexList bindings) {
         MatchBindExpr other;
         try {
             other = (MatchBindExpr)Ref.resolution(specimen);
@@ -120,13 +120,15 @@
             return false;
         }
         return (mySpecimen.matchBind(args, other.mySpecimen, bindings)
-                && myPattern.matchBind(args, other.myPattern, bindings));
+          && myPattern.matchBind(args, other.myPattern, bindings));
     }
 
     /**
      *
      */
-    public Pattern pattern() { return myPattern; }
+    public Pattern pattern() {
+        return myPattern;
+    }
 
     /**
      *
@@ -146,5 +148,7 @@
     /**
      *
      */
-    public EExpr specimen() { return mySpecimen; }
+    public EExpr specimen() {
+        return mySpecimen;
+    }
 }



1.11      +13 -7     e/src/jsrc/org/erights/e/elang/evm/Matcher.java

Index: Matcher.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elang/evm/Matcher.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- Matcher.java	2001/11/09 01:17:20	1.10
+++ Matcher.java	2001/11/10 19:40:39	1.11
@@ -18,11 +18,12 @@
 
 Contributor(s): ______________________________________.
 */
+
 import org.erights.e.elang.scope.EvalContext;
 import org.erights.e.elang.visitors.ETreeVisitor;
 import org.erights.e.elib.base.Script;
-import org.erights.e.elib.eio.TextWriter;
 import org.erights.e.elib.base.TypeDesc;
+import org.erights.e.elib.eio.TextWriter;
 import org.erights.e.elib.ref.Ref;
 import org.erights.e.elib.tables.ConstList;
 import org.erights.e.elib.tables.FlexList;
@@ -46,7 +47,9 @@
     static private final Object[] NO_ARGS = {};
 
     private Pattern myPattern;
+
     private EExpr myBody;
+
     private int myLocalCount = -1;
 
     /**
@@ -76,12 +79,16 @@
     /**
      *
      */
-    public Pattern pattern() { return myPattern; }
+    public Pattern pattern() {
+        return myPattern;
+    }
 
     /**
      *
      */
-    public EExpr   body() { return myBody; }
+    public EExpr body() {
+        return myBody;
+    }
 
     /**
      * When staticScope() is first requested on a given node, it calls
@@ -99,7 +106,7 @@
      */
     public Object execute(Object self, String verb, Object[] args) {
         Object[] message = { verb, ConstList.fromArray(args) };
-        EvalContext ctx = ((EImpl) self).newContext(myLocalCount);
+        EvalContext ctx = ((EImpl)self).newContext(myLocalCount);
         //it *must* bind when it's directly executed, as opposed to when
         //it's in a switch
         myPattern.testMatch(ctx,
@@ -113,8 +120,7 @@
      */
     public boolean matchBind(Object[] args,
                              Object specimen,
-                             FlexList bindings)
-    {
+                             FlexList bindings) {
         Matcher other;
         try {
             other = (Matcher)Ref.resolution(specimen);
@@ -124,7 +130,7 @@
             return false;
         }
         return (myPattern.matchBind(args, other.myPattern, bindings)
-                && myBody.matchBind(args, other.myBody, bindings));
+          && myBody.matchBind(args, other.myBody, bindings));
     }
 
     /**



1.11      +6 -5      e/src/jsrc/org/erights/e/elang/evm/MetaExpr.java

Index: MetaExpr.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elang/evm/MetaExpr.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- MetaExpr.java	2001/11/09 01:17:20	1.10
+++ MetaExpr.java	2001/11/10 19:40:39	1.11
@@ -45,8 +45,8 @@
     /**
      *
      */
-    /*package*/ Object subEval(EvalContext ctx, boolean forValue)  {
-        return forValue ? new EMeta(myNoun.subEval(ctx, true)) : null ;
+    /*package*/ Object subEval(EvalContext ctx, boolean forValue) {
+        return forValue ? new EMeta(myNoun.subEval(ctx, true)) : null;
     }
 
     /**
@@ -54,8 +54,7 @@
      */
     public boolean matchBind(Object[] args,
                              Object specimen,
-                             FlexList bindings)
-    {
+                             FlexList bindings) {
         MetaExpr other;
         try {
             other = (MetaExpr)Ref.resolution(specimen);
@@ -70,7 +69,9 @@
     /**
      *
      */
-    public NounExpr noun() { return myNoun; }
+    public NounExpr noun() {
+        return myNoun;
+    }
 
     /**
      *



1.26      +7 -8      e/src/jsrc/org/erights/e/elang/evm/NounExpr.java

Index: NounExpr.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elang/evm/NounExpr.java,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -r1.25 -r1.26
--- NounExpr.java	2001/11/09 01:17:20	1.25
+++ NounExpr.java	2001/11/10 19:40:39	1.26
@@ -30,8 +30,6 @@
 
 import java.io.IOException;
 
-import java.io.IOException;
-
 /**
  * BNF: varName <p>
  *
@@ -67,14 +65,14 @@
         return false;
     }
 
-     /**
+    /**
      *
      */
     public Object welcome(ETreeVisitor visitor) {
         return visitor.visitNounExpr(myName);
     }
 
-   /**
+    /**
      *
      */
     /*package*/ StaticScope computeStaticScope() {
@@ -103,11 +101,10 @@
      */
     public boolean matchBind(Object[] args,
                              Object specimen,
-                             FlexList bindings)
-    {
+                             FlexList bindings) {
         NounExpr other;
         try {
-            other = (NounExpr) Ref.resolution(specimen);
+            other = (NounExpr)Ref.resolution(specimen);
         } catch (ClassCastException cce) {
             //using a try/catch since success is typical and we have
             //to pay for the test in the cast anyway
@@ -119,7 +116,9 @@
     /**
      *
      */
-    public String name() { return myName; }
+    public String name() {
+        return myName;
+    }
 
     /**
      *



1.2       +10 -9     e/src/jsrc/org/erights/e/elang/evm/NounPattern.java

Index: NounPattern.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elang/evm/NounPattern.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- NounPattern.java	2001/11/09 04:47:34	1.1
+++ NounPattern.java	2001/11/10 19:40:39	1.2
@@ -87,11 +87,11 @@
         StaticScope smScope = guardExpr.staticScope();
         if (smScope.namesUsed().maps(myVarName)) {
             throw new RuntimeException
-                ("kernel definer cycle not allowed: " + myVarName);
+              ("kernel definer cycle not allowed: " + myVarName);
         }
         if (smScope.namesOut().maps(myVarName)) {
             throw new RuntimeException
-                ("kernel definer shadow not allowed: " + myVarName);
+              ("kernel definer shadow not allowed: " + myVarName);
         }
     }
 
@@ -106,7 +106,9 @@
      * A Definer will never return null for this.  It is named
      * 'optName' because it is polymorphic with IgnorePattern
      */
-    public String optName()     { return myVarName; }
+    public String optName() {
+        return myVarName;
+    }
 
     /**
      *
@@ -129,8 +131,7 @@
      */
     public boolean matchBind(Object[] args,
                              Object specimen,
-                             FlexList bindings)
-    {
+                             FlexList bindings) {
         NounPattern other;
         try {
             other = (NounPattern)Ref.resolution(specimen);
@@ -146,10 +147,10 @@
                          args,
                          other.getNoun(),
                          bindings)
-                && matchBind(guardExpr(),
-                             args,
-                             other.guardExpr(),
-                             bindings);
+          && matchBind(guardExpr(),
+                       args,
+                       other.guardExpr(),
+                       bindings);
     }
 
     /**



1.37      +20 -13    e/src/jsrc/org/erights/e/elang/evm/ObjectExpr.java

Index: ObjectExpr.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elang/evm/ObjectExpr.java,v
retrieving revision 1.36
retrieving revision 1.37
diff -u -r1.36 -r1.37
--- ObjectExpr.java	2001/11/09 01:17:20	1.36
+++ ObjectExpr.java	2001/11/10 19:40:39	1.37
@@ -47,9 +47,13 @@
 public class ObjectExpr extends EExpr {
 
     private String myDocComment;
+
     private String myOptFQN;
+
     private NounExpr[] myAuditors;
+
     private EScript myEScript;
+
     private NounExpr[] myOptFieldInits;
 
     private VTable myOptVtableCache = null;
@@ -60,8 +64,7 @@
     public ObjectExpr(String docComment,
                       String optFQN,
                       NounExpr[] auditors,
-                      EScript eScript)
-    {
+                      EScript eScript) {
         if (docComment == null) {
             docComment = "Oops, docComment was null";
         }
@@ -78,8 +81,7 @@
                       String optFQN,
                       NounExpr[] auditors,
                       EScript eScript,
-                      NounExpr[] fieldNouns)
-    {
+                      NounExpr[] fieldNouns) {
         if (docComment == null) {
             docComment = "Oops, docComment was null";
         }
@@ -122,7 +124,7 @@
      *
      */
     /*package*/ Object subEval(EvalContext ctx, boolean forValue) {
-        if (! forValue) {
+        if (!forValue) {
             return null;
         }
         int max = myOptFieldInits.length;
@@ -139,8 +141,7 @@
      */
     public boolean matchBind(Object[] args,
                              Object specimen,
-                             FlexList bindings)
-    {
+                             FlexList bindings) {
         ObjectExpr other;
         try {
             other = (ObjectExpr)Ref.resolution(specimen);
@@ -150,8 +151,8 @@
             return false;
         }
         return (Ref.same(myOptFQN, other.myOptFQN)
-                && matchBind(myAuditors, args, other.myAuditors, bindings)
-                && myEScript.matchBind(args, other.myEScript, bindings));
+          && matchBind(myAuditors, args, other.myAuditors, bindings)
+          && myEScript.matchBind(args, other.myEScript, bindings));
     }
 
     /**
@@ -176,7 +177,9 @@
     /**
      *
      */
-    public String optFQN() { return myOptFQN; }
+    public String optFQN() {
+        return myOptFQN;
+    }
 
     /**
      *
@@ -188,7 +191,7 @@
         String result = myOptFQN;
         int i = result.lastIndexOf('$');
         if (-1 != i) {
-            result = result.substring(i+1);
+            result = result.substring(i + 1);
         }
         if (result.endsWith("__Class")) {
             int len = result.length() - "__Class".length();
@@ -200,12 +203,16 @@
     /**
      *
      */
-    public ConstList auditors() { return ConstList.fromArray(myAuditors); }
+    public ConstList auditors() {
+        return ConstList.fromArray(myAuditors);
+    }
 
     /**
      *
      */
-    public EScript eScript() { return myEScript; }
+    public EScript eScript() {
+        return myEScript;
+    }
 
     /**
      *



1.2       +2 -1      e/src/jsrc/org/erights/e/elang/evm/OuterNounExpr.java

Index: OuterNounExpr.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elang/evm/OuterNounExpr.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- OuterNounExpr.java	2001/11/09 04:47:34	1.1
+++ OuterNounExpr.java	2001/11/10 19:40:39	1.2
@@ -85,8 +85,9 @@
      * unless overridden by a printOn method written in E.
      */
     public String toString() {
-        return ""+myIndex;
+        return "" + myIndex;
     }
+
     /**
      *
      */



1.29      +4 -3      e/src/jsrc/org/erights/e/elang/evm/Pattern.java

Index: Pattern.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elang/evm/Pattern.java,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -r1.28 -r1.29
--- Pattern.java	2001/11/09 01:17:20	1.28
+++ Pattern.java	2001/11/10 19:40:39	1.29
@@ -40,7 +40,8 @@
     /**
      *
      */
-    /*package*/ Pattern() {}
+    /*package*/ Pattern() {
+    }
 
     /**
      * @see #subPrintOn
@@ -64,8 +65,8 @@
      * Otherwise report the reason why not according to optEjector.
      */
     /*package*/ abstract void testMatch(EvalContext ctx,
-                                         Object specimen,
-                                         OneArgFunc optEjector);
+                                        Object specimen,
+                                        OneArgFunc optEjector);
 
     /**
      * If this pattern is the binding occurence of a name, and it would bind



1.22      +5 -4      e/src/jsrc/org/erights/e/elang/evm/QuasiLiteralExpr.java

Index: QuasiLiteralExpr.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elang/evm/QuasiLiteralExpr.java,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -r1.21 -r1.22
--- QuasiLiteralExpr.java	2001/11/09 01:17:20	1.21
+++ QuasiLiteralExpr.java	2001/11/10 19:40:39	1.22
@@ -18,6 +18,7 @@
 
 Contributor(s): ______________________________________.
 */
+
 import org.erights.e.elang.scope.EvalContext;
 import org.erights.e.elang.visitors.ETreeVisitor;
 import org.erights.e.elib.eio.TextWriter;
@@ -27,7 +28,6 @@
 import java.io.IOException;
 
 
-
 /**
  * BNF: '$' '{' <number> '}' <p>
  *
@@ -75,7 +75,9 @@
     /**
      *
      */
-    public int index() { return myIndex; }
+    public int index() {
+        return myIndex;
+    }
 
     static private final Object[] NO_ARGS = {};
 
@@ -84,8 +86,7 @@
      */
     public boolean matchBind(Object[] args,
                              Object specimen,
-                             FlexList bindings)
-    {
+                             FlexList bindings) {
         //XXX Need to do the same() rather than doing another
         //matchBind(), but can't right now since we'd need value-based
         //equality on all the Exprs.



1.12      +6 -6      e/src/jsrc/org/erights/e/elang/evm/QuasiLiteralPatt.java

Index: QuasiLiteralPatt.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elang/evm/QuasiLiteralPatt.java,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- QuasiLiteralPatt.java	2001/11/09 01:17:20	1.11
+++ QuasiLiteralPatt.java	2001/11/10 19:40:39	1.12
@@ -69,9 +69,8 @@
      * according to optEjector
      */
     /*package*/ void testMatch(EvalContext ctx,
-                                Object specimen,
-                                OneArgFunc optEjector)
-    {
+                               Object specimen,
+                               OneArgFunc optEjector) {
         throw new IncompleteQuasiException
           ("Can't evaluate programs that still contain bare \"$\"s");
     }
@@ -87,7 +86,9 @@
     /**
      *
      */
-    public int index() { return myIndex; }
+    public int index() {
+        return myIndex;
+    }
 
     static private final Object[] NO_ARGS = {};
 
@@ -96,8 +97,7 @@
      */
     public boolean matchBind(Object[] args,
                              Object specimen,
-                             FlexList bindings)
-    {
+                             FlexList bindings) {
         //XXX Need to do the areEquals() rather than doing another
         //matchBind(), but can't right now since we'd need value-based
         //equals methods on all the Patterns.



1.23      +6 -4      e/src/jsrc/org/erights/e/elang/evm/QuasiPatternExpr.java

Index: QuasiPatternExpr.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elang/evm/QuasiPatternExpr.java,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -r1.22 -r1.23
--- QuasiPatternExpr.java	2001/11/09 01:17:20	1.22
+++ QuasiPatternExpr.java	2001/11/10 19:40:39	1.23
@@ -18,6 +18,7 @@
 
 Contributor(s): ______________________________________.
 */
+
 import org.erights.e.elang.scope.EvalContext;
 import org.erights.e.elang.visitors.ETreeVisitor;
 import org.erights.e.elib.eio.TextWriter;
@@ -74,16 +75,17 @@
     /**
      *
      */
-    public int index() { return myIndex; }
+    public int index() {
+        return myIndex;
+    }
 
     /**
      *
      */
     public boolean matchBind(Object[] args,
                              Object specimen,
-                             FlexList bindings)
-    {
-        bindings.ensureSize(myIndex+1);
+                             FlexList bindings) {
+        bindings.ensureSize(myIndex + 1);
         if (bindings.get(myIndex) != null) {
             throw new AlreadyDefinedException("conflict defining @{"
                                               + myIndex + "}");



1.12      +8 -7      e/src/jsrc/org/erights/e/elang/evm/QuasiPatternPatt.java

Index: QuasiPatternPatt.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elang/evm/QuasiPatternPatt.java,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- QuasiPatternPatt.java	2001/11/09 01:17:20	1.11
+++ QuasiPatternPatt.java	2001/11/10 19:40:39	1.12
@@ -18,6 +18,7 @@
 
 Contributor(s): ______________________________________.
 */
+
 import org.erights.e.elang.scope.EvalContext;
 import org.erights.e.elang.visitors.ETreeVisitor;
 import org.erights.e.elib.eio.TextWriter;
@@ -69,9 +70,8 @@
      * Throws an IncompleteQuasiException rather than indicating match failure
      */
     /*package*/ void testMatch(EvalContext ctx,
-                                Object specimen,
-                                OneArgFunc optEjector)
-    {
+                               Object specimen,
+                               OneArgFunc optEjector) {
         throw new IncompleteQuasiException
           ("Can't evaluate programs that still contain bare \"@\"s");
     }
@@ -87,16 +87,17 @@
     /**
      *
      */
-    public int index() { return myIndex; }
+    public int index() {
+        return myIndex;
+    }
 
     /**
      *
      */
     public boolean matchBind(Object[] args,
                              Object specimen,
-                             FlexList bindings)
-    {
-        bindings.ensureSize(myIndex+1);
+                             FlexList bindings) {
+        bindings.ensureSize(myIndex + 1);
         if (bindings.get(myIndex) != null) {
             throw new AlreadyDefinedException("conflict defining @{"
                                               + myIndex + "}");



1.22      +4 -5      e/src/jsrc/org/erights/e/elang/evm/ScopeExpr.java

Index: ScopeExpr.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elang/evm/ScopeExpr.java,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -r1.21 -r1.22
--- ScopeExpr.java	2001/11/09 01:17:20	1.21
+++ ScopeExpr.java	2001/11/10 19:40:39	1.22
@@ -29,7 +29,6 @@
 import java.io.IOException;
 
 
-
 /**
  * BNF: "meta scope" <p>
  *
@@ -41,7 +40,8 @@
     /**
      *
      */
-    public ScopeExpr() {}
+    public ScopeExpr() {
+    }
 
     /**
      *
@@ -60,7 +60,7 @@
     /**
      *
      */
-    /*package*/ Object subEval(EvalContext ctx, boolean forValue)  {
+    /*package*/ Object subEval(EvalContext ctx, boolean forValue) {
         // NOTE this needs to strip the now-unreferenced content from
         // the scope, possibly combining the scope with the current staticScope.
         // TODO build a scope
@@ -72,8 +72,7 @@
      */
     public boolean matchBind(Object[] args,
                              Object specimen,
-                             FlexList bindings)
-    {
+                             FlexList bindings) {
         ScopeExpr other;
         try {
             other = (ScopeExpr)Ref.resolution(specimen);



1.23      +12 -7     e/src/jsrc/org/erights/e/elang/evm/SendExpr.java

Index: SendExpr.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elang/evm/SendExpr.java,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -r1.22 -r1.23
--- SendExpr.java	2001/11/09 01:17:20	1.22
+++ SendExpr.java	2001/11/10 19:40:39	1.23
@@ -103,8 +103,7 @@
      */
     public boolean matchBind(Object[] args,
                              Object specimen,
-                             FlexList bindings)
-    {
+                             FlexList bindings) {
         SendExpr other;
         try {
             other = (SendExpr)Ref.resolution(specimen);
@@ -114,8 +113,8 @@
             return false;
         }
         return (myRecipient.matchBind(args, other.myRecipient, bindings)
-                && myVerb.equals(other.myVerb)
-                && matchBind(myArgs, args, other.myArgs, bindings));
+          && myVerb.equals(other.myVerb)
+          && matchBind(myArgs, args, other.myArgs, bindings));
     }
 
     /**
@@ -136,15 +135,21 @@
     /**
      *
      */
-    public EExpr recipient() { return myRecipient; }
+    public EExpr recipient() {
+        return myRecipient;
+    }
 
     /**
      *
      */
-    public String verb() { return myVerb; }
+    public String verb() {
+        return myVerb;
+    }
 
     /**
      *
      */
-    public EExpr[] args() { return myArgs; }
+    public EExpr[] args() {
+        return myArgs;
+    }
 }



1.10      +28 -27    e/src/jsrc/org/erights/e/elang/evm/SeqExpr.java

Index: SeqExpr.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elang/evm/SeqExpr.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- SeqExpr.java	2001/11/09 01:17:20	1.9
+++ SeqExpr.java	2001/11/10 19:40:39	1.10
@@ -48,7 +48,7 @@
     public SeqExpr(EExpr[] subs) {
         List accum = new ArrayList(subs.length);
         appendAllTo(accum, subs);
-        mySubs = (EExpr[]) accum.toArray(EEXPR_PROTOTYPE);
+        mySubs = (EExpr[])accum.toArray(EEXPR_PROTOTYPE);
     }
 
     /**
@@ -64,22 +64,22 @@
     /*package*/ StaticScope computeStaticScope() {
         StaticScope result = mySubs[0].staticScope();
         // NOTE the loop begins at 1, not 0
-    	for (int i = 1, max = mySubs.length; i < max; i++) {
+        for (int i = 1, max = mySubs.length; i < max; i++) {
             result = result.add(mySubs[i].staticScope());
-    	}
-    	return result;
+        }
+        return result;
     }
 
     /**
      *
      */
     /*package*/ Object subEval(EvalContext ctx, boolean forValue) {
-    	// only compute a value for the last sub
-    	int last = mySubs.length - 1;
-    	for (int i = 0; i < last; i++) {
+        // only compute a value for the last sub
+        int last = mySubs.length - 1;
+        for (int i = 0; i < last; i++) {
             mySubs[i].subEval(ctx, false);
-    	}
-    	return mySubs[last].subEval(ctx, forValue);
+        }
+        return mySubs[last].subEval(ctx, forValue);
     }
 
     /**
@@ -87,8 +87,7 @@
      */
     public boolean matchBind(Object[] args,
                              Object specimen,
-                             FlexList bindings)
-    {
+                             FlexList bindings) {
         SeqExpr other;
         try {
             other = (SeqExpr)Ref.resolution(specimen);
@@ -98,16 +97,16 @@
             return false;
         }
 
-		EExpr[] subs = other.mySubs;
-		if (subs.length != mySubs.length) {
-			return false;
-		}
-    	for (int i = 0, max = mySubs.length; i < max; i++) {
-            if (! mySubs[i].matchBind(args, subs[i], bindings)) {
-            	return false;
+        EExpr[] subs = other.mySubs;
+        if (subs.length != mySubs.length) {
+            return false;
+        }
+        for (int i = 0, max = mySubs.length; i < max; i++) {
+            if (!mySubs[i].matchBind(args, subs[i], bindings)) {
+                return false;
             }
-    	}
-    	return true;
+        }
+        return true;
     }
 
     /**
@@ -118,13 +117,13 @@
             out.print("(");
         }
         boolean first = true;
-    	for (int i = 0, max = mySubs.length; i < max; i++) {
-            if (! first) {
-		        out.println();
+        for (int i = 0, max = mySubs.length; i < max; i++) {
+            if (!first) {
+                out.println();
             }
             first = false;
-	        mySubs[i].subPrintOn(out, PR_EEXPR);
-    	}
+            mySubs[i].subPrintOn(out, PR_EEXPR);
+        }
         if (priority > PR_EEXPR) {
             out.print(")");
         }
@@ -133,12 +132,14 @@
     /**
      *
      */
-    public EExpr[] subs() { return mySubs; }
+    public EExpr[] subs() {
+        return mySubs;
+    }
 
     /**
      * Append subs in place of the receiver.
      */
     protected void appendTo(List accum) {
-     	appendAllTo(accum, mySubs);
+        appendAllTo(accum, mySubs);
     }
 }



1.25      +4 -3      e/src/jsrc/org/erights/e/elang/evm/SlotExpr.java

Index: SlotExpr.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elang/evm/SlotExpr.java,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -r1.24 -r1.25
--- SlotExpr.java	2001/11/09 01:17:20	1.24
+++ SlotExpr.java	2001/11/10 19:40:39	1.25
@@ -75,8 +75,7 @@
      */
     public boolean matchBind(Object[] args,
                              Object specimen,
-                             FlexList bindings)
-    {
+                             FlexList bindings) {
         SlotExpr other;
         try {
             other = (SlotExpr)Ref.resolution(specimen);
@@ -91,7 +90,9 @@
     /**
      *
      */
-    public NounExpr noun() { return myNoun; }
+    public NounExpr noun() {
+        return myNoun;
+    }
 
     /**
      *



1.17      +17 -13    e/src/jsrc/org/erights/e/elang/evm/StaticScope.java

Index: StaticScope.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elang/evm/StaticScope.java,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -r1.16 -r1.17
--- StaticScope.java	2001/11/09 01:17:20	1.16
+++ StaticScope.java	2001/11/10 19:40:39	1.17
@@ -18,6 +18,7 @@
 
 Contributor(s): ______________________________________.
 */
+
 import org.erights.e.elib.eio.TextWriter;
 import org.erights.e.elib.tables.ConstMap;
 import org.erights.e.elib.tables.FlexMap;
@@ -32,44 +33,47 @@
     //XXX should really use an identity map, and nouns (variable
     //names) should be interned.
     static public final ConstMap
-        EmptyMap = FlexMap.fromTypes(String.class, Void.class).snapshot();
+      EmptyMap = FlexMap.fromTypes(String.class, Void.class).snapshot();
 
-    static public final StaticScope 
-        EmptyScope = new StaticScope(EmptyMap, EmptyMap, false, EmptyMap),
-        META_SCOPE = new StaticScope(EmptyMap, EmptyMap, true, EmptyMap);
+    static public final StaticScope
+      EmptyScope = new StaticScope(EmptyMap, EmptyMap, false, EmptyMap),
+    META_SCOPE = new StaticScope(EmptyMap, EmptyMap, true, EmptyMap);
 
     private ConstMap myNamesRead;
+
     private ConstMap myNamesSet;
+
     private boolean myScopeExprFlag;
+
     private ConstMap myNamesOut;
 
     private StaticScope(ConstMap namesRead,
-                       ConstMap namesSet,
-                       boolean hasScopeExpr,
-                       ConstMap namesOut) {
+                        ConstMap namesSet,
+                        boolean hasScopeExpr,
+                        ConstMap namesOut) {
         myNamesRead = namesRead;
         myNamesSet = namesSet;
         myScopeExprFlag = hasScopeExpr;
         myNamesOut = namesOut;
     }
-    
+
     static public StaticScope
-    scopeAssign(ConstMap namesSet) {
+      scopeAssign(ConstMap namesSet) {
         return new StaticScope(EmptyMap, namesSet, false, EmptyMap);
     }
 
     static public StaticScope
-    scopeRead(ConstMap namesRead) {
+      scopeRead(ConstMap namesRead) {
         return new StaticScope(namesRead, EmptyMap, false, EmptyMap);
     }
 
     static public StaticScope
-    scopeDefine(ConstMap namesOut) {
+      scopeDefine(ConstMap namesOut) {
         return new StaticScope(EmptyMap, EmptyMap, false, namesOut);
     }
 
     static public StaticScope
-    scopeMeta() {
+      scopeMeta() {
         return META_SCOPE;
     }
 
@@ -143,6 +147,6 @@
      */
     public void printOn(TextWriter out) throws IOException {
         out.print("<", myNamesSet, " := ",
-                 myNamesRead, " =~ ", myNamesOut, ">");
+                  myNamesRead, " =~ ", myNamesOut, ">");
     }
 }



1.14      +6 -7      e/src/jsrc/org/erights/e/elang/evm/SuchThatPattern.java

Index: SuchThatPattern.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elang/evm/SuchThatPattern.java,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- SuchThatPattern.java	2001/11/09 01:17:20	1.13
+++ SuchThatPattern.java	2001/11/10 19:40:39	1.14
@@ -40,6 +40,7 @@
 public class SuchThatPattern extends Pattern {
 
     private Pattern mySubPattern;
+
     private EExpr myTest;
 
     /**
@@ -69,8 +70,7 @@
      */
     public boolean matchBind(Object[] args,
                              Object specimen,
-                             FlexList bindings)
-    {
+                             FlexList bindings) {
         SuchThatPattern other;
         try {
             other = (SuchThatPattern)Ref.resolution(specimen);
@@ -80,7 +80,7 @@
             return false;
         }
         return (mySubPattern.matchBind(args, other.mySubPattern, bindings)
-                && myTest.matchBind(args, other.myTest, bindings));
+          && myTest.matchBind(args, other.myTest, bindings));
     }
 
     /**
@@ -96,11 +96,10 @@
      *
      */
     /*package*/ void testMatch(EvalContext ctx,
-                                Object specimen,
-                                OneArgFunc optEjector)
-    {
+                               Object specimen,
+                               OneArgFunc optEjector) {
         mySubPattern.testMatch(ctx, specimen, optEjector);
-        if (! myTest.evalBool(ctx)) {
+        if (!myTest.evalBool(ctx)) {
             throw Thrower.toEject(optEjector,
                                   "such-that expression was false");
         }



1.11      +11 -8     e/src/jsrc/org/erights/e/elang/evm/VarPattern.java

Index: VarPattern.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elang/evm/VarPattern.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- VarPattern.java	2001/11/09 01:17:20	1.10
+++ VarPattern.java	2001/11/10 19:40:39	1.11
@@ -57,8 +57,9 @@
 public class VarPattern extends NounPattern {
 
     private NounExpr myNoun;
+
     private EExpr mySlotGuard;
-   
+
     /**
      * If 'varName' would shadow a non-shadowable, throw a (XXX to be
      * defined) exception instead.  <p>
@@ -72,9 +73,10 @@
         mySlotGuard = guardExpr;
         ensureWellFormed(mySlotGuard);
     }
+
     public VarPattern(String varName, EExpr guardExpr) {
         this(varName, new NounExpr(varName), guardExpr);
-    }    
+    }
 
     /**
      *
@@ -90,7 +92,9 @@
     /**
      *
      */
-    protected EExpr guardExpr() { return mySlotGuard; }
+    protected EExpr guardExpr() {
+        return mySlotGuard;
+    }
 
     /**
      *
@@ -104,13 +108,12 @@
      *
      */
     /*package*/ void testMatch(EvalContext ctx,
-                                Object specimen,
-                                OneArgFunc optEjector)
-    {
-        //Because of the well-formedness criterea, we may safely evaluate 
+                               Object specimen,
+                               OneArgFunc optEjector) {
+        //Because of the well-formedness criterea, we may safely evaluate
         //this in the wrong order
         Object sg = mySlotGuard.subEval(ctx, true);
-        SlotGuard slotGuard = (SlotGuard) E.as(sg, SlotGuard.class);
+        SlotGuard slotGuard = (SlotGuard)E.as(sg, SlotGuard.class);
         Slot slot = slotGuard.makeSlot(specimen, optEjector);
         myNoun.initSlot(ctx, slot);
     }



1.19      +6 -4      e/src/jsrc/org/erights/e/elang/interp/Help.java

Index: Help.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elang/interp/Help.java,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -r1.18 -r1.19
--- Help.java	2001/11/09 01:17:21	1.18
+++ Help.java	2001/11/10 19:40:41	1.19
@@ -18,10 +18,11 @@
 
 Contributor(s): ______________________________________.
 */
+
 import org.erights.e.develop.format.StringHelper;
 import org.erights.e.elib.base.MessageDesc;
-import org.erights.e.elib.eio.TextWriter;
 import org.erights.e.elib.base.TypeDesc;
+import org.erights.e.elib.eio.TextWriter;
 import org.erights.e.elib.eio.UnQuote;
 import org.erights.e.elib.prim.E;
 import org.erights.e.elib.ref.Ref;
@@ -31,7 +32,6 @@
 import java.io.StringWriter;
 
 
-
 /**
  * Implements the E help command
  *
@@ -42,7 +42,8 @@
     /**
      *
      */
-    public Help() {}
+    public Help() {
+    }
 
     /**
      * Return name prefixed by "a " or "an " according to a simple (and
@@ -86,7 +87,8 @@
               = (MessageDesc[])mTypeMap.getValues();
             for (int i = 0; i < mTypes.length; i++) {
                 MessageDesc mType = mTypes[i];
-                if (mType.getVerb().indexOf('(') == -1) { //XXX hack
+                if (mType.getVerb().indexOf('(') == -1) {
+                    //XXX hack
                     mType.printHelpOn(out.indent());
                 }
             }



1.13      +28 -21    e/src/jsrc/org/erights/e/elang/interp/InteractiveInterp.java

Index: InteractiveInterp.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elang/interp/InteractiveInterp.java,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- InteractiveInterp.java	2001/11/09 01:17:21	1.12
+++ InteractiveInterp.java	2001/11/10 19:40:41	1.13
@@ -31,12 +31,12 @@
 import org.erights.e.elang.syntax.LineFeeder;
 import org.erights.e.elang.syntax.NeedMoreException;
 import org.erights.e.elib.eio.TextWriter;
-import org.erights.e.elib.prim.Runner;
-import org.erights.e.elib.prim.FERunner;
 import org.erights.e.elib.prim.E;
+import org.erights.e.elib.prim.FERunner;
+import org.erights.e.elib.prim.Runner;
+import org.erights.e.elib.ref.ExternalRef;
 import org.erights.e.elib.ref.Ref;
 import org.erights.e.elib.ref.Resolver;
-import org.erights.e.elib.ref.ExternalRef;
 import org.erights.e.elib.tables.ConstList;
 import org.erights.e.elib.tables.ConstMap;
 import org.erights.e.elib.tables.Twine;
@@ -77,20 +77,29 @@
     }
 
     private ConstList myArgs;
+
     private ConstMap myProps;
+
     private TextWriter myOuts;
+
     private TextWriter myErrs;
 
     private ExternalRef myFarSelf;
+
     private EParser myParser;
+
     private Scope myTopScope;
 
     private boolean myExpandFlag = false;
+
     private boolean myVerboseFlag = false;
 
     private Object myTopLock = new Object();
+
     private boolean myShouldBlock = false;
+
     private boolean myShouldExit = false;
+
     private Throwable myOptProblem = null;
 
     private Object[] myResults = new Object[10];
@@ -115,8 +124,7 @@
                               Scope topScope,
 
                               boolean expandFlag,
-                              boolean verboseFlag)
-    {
+                              boolean verboseFlag) {
         myArgs = args;
         myProps = props;
         myOuts = outs;
@@ -243,7 +251,7 @@
                                          LineFeeder optLineFeeder,
                                          Scope optTopScope,
                                          boolean partialFlag)
-    throws IOException, AlreadyDefinedException {
+      throws IOException, AlreadyDefinedException {
         if (optLineFeeder == null) {
             BufferedReader ins = PrintStreamWriter.in();
             optLineFeeder = new FileFeeder("", ins, outs);
@@ -291,7 +299,7 @@
      *
      */
     public void blockAtTop() {
-        synchronized(myTopLock) {
+        synchronized (myTopLock) {
             myShouldBlock = true;
         }
     }
@@ -300,7 +308,7 @@
      *
      */
     public void continueAtTop() {
-        synchronized(myTopLock) {
+        synchronized (myTopLock) {
             myShouldBlock = false;
             myTopLock.notifyAll();
         }
@@ -311,7 +319,7 @@
      * with interpreter exiting.
      */
     public void exitAtTop(Throwable optProblem) {
-        synchronized(myTopLock) {
+        synchronized (myTopLock) {
             myShouldBlock = false;
             myShouldExit = true;
             myOptProblem = optProblem;
@@ -409,7 +417,7 @@
                 ExceptionMgr.reportException(iox);
                 throw ExceptionMgr.asSafe(iox);
             }
-            synchronized(myTopLock) {
+            synchronized (myTopLock) {
                 while (myShouldBlock) {
                     try {
                         myTopLock.wait();
@@ -454,10 +462,9 @@
      *
      */
     static public void main(String[] argArray)
-    throws IOException, AlreadyDefinedException,
-           UnsupportedLookAndFeelException, ClassNotFoundException,
-           InstantiationException, IllegalAccessException
-    {
+      throws IOException, AlreadyDefinedException,
+      UnsupportedLookAndFeelException, ClassNotFoundException,
+      InstantiationException, IllegalAccessException {
         ConstList args = ConstList.fromArray(argArray);
         Properties sysProps = System.getProperties();
         TextWriter outs = new TextWriter(PrintStreamWriter.out(), true);
@@ -480,10 +487,10 @@
                 int equals = option.indexOf('=');
                 if (equals == -1) {
                     throw new IllegalArgumentException(
-                        "Property spec missing '=': " + option);
+                      "Property spec missing '=': " + option);
                 }
-                String name = option.substring(2,equals);
-                String value = option.substring(equals+1);
+                String name = option.substring(2, equals);
+                String value = option.substring(equals + 1);
                 sysProps.setProperty(name, value);
 
             } else if ("--interact".equals(option)) {
@@ -491,7 +498,7 @@
 
             } else {
                 throw new IllegalArgumentException(
-                    "Unrecognized option: " + option);
+                  "Unrecognized option: " + option);
             }
         }
 
@@ -512,7 +519,7 @@
             Enumeration iter = eprops.propertyNames();
             while (iter.hasMoreElements()) {
                 String key = (String)iter.nextElement();
-                if (! sysProps.containsKey(key)) {
+                if (!sysProps.containsKey(key)) {
                     sysProps.setProperty(key, eprops.getProperty(key));
                 }
             }
@@ -536,8 +543,8 @@
                                             errs,
 
                                             FERunner.THE_ONE,
-                                            null,   //optLineFeeder
-                                            null,   //optTopScope
+                                            null, //optLineFeeder
+                                            null, //optTopScope
                                             false); //partialFlag
         } catch (Throwable th) {
             Interp.reportProblem(th, errs, true);



1.76      +58 -54    e/src/jsrc/org/erights/e/elang/interp/Interp.java

Index: Interp.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elang/interp/Interp.java,v
retrieving revision 1.75
retrieving revision 1.76
diff -u -r1.75 -r1.76
--- Interp.java	2001/11/09 01:17:21	1.75
+++ Interp.java	2001/11/10 19:40:41	1.76
@@ -31,13 +31,13 @@
 import org.erights.e.elang.syntax.FileFeeder;
 import org.erights.e.elang.syntax.LineFeeder;
 import org.erights.e.elib.eio.TextWriter;
-import org.erights.e.elib.prim.Runner;
-import org.erights.e.elib.prim.FERunner;
 import org.erights.e.elib.prim.BERunner;
 import org.erights.e.elib.prim.E;
+import org.erights.e.elib.prim.FERunner;
+import org.erights.e.elib.prim.Runner;
+import org.erights.e.elib.ref.ExternalRef;
 import org.erights.e.elib.ref.Ref;
 import org.erights.e.elib.ref.Resolver;
-import org.erights.e.elib.ref.ExternalRef;
 import org.erights.e.elib.tables.ConstList;
 import org.erights.e.elib.tables.ConstMap;
 import org.erights.e.elib.tables.Twine;
@@ -66,47 +66,56 @@
 public class Interp implements Interpreter, InterpLoop, Runnable {
 
     static private final String USAGE =
-"usage: either\n" +
-"  java [java-options] interp [interp-options] script [args...]\n" +
-"    (where 'interp' is 'org.erights.e.elang.interp.Interp')\n" +
-"  java -jar [java-options] ehome/e.jar [interp-options] script [args...]\n" +
-"    (where 'ehome' is the directory where E is installed)\n" +
-"  e [e-options] script [args...]\n" +
-"\n" +
-"For java-options, consult 'java -help'\n" +
-"For e-options, consult 'e --help'\n" +
-"interp-options are:\n" +
-"  -D<name>=<value>     Defines property.  Redundant with java-option,\n" +
-"                       but provided for environments (like Cafe) in\n" +
-"                       which it's difficult to provide java-options.\n" +
-"  --help               Prints this text.\n" +
-"script is one of\n" +
-"  filename.e           The E script file to execute\n" +
-"  -                    Use stdin as script file\n" +
-"  --interact           An interactive command line\n";
+      "usage: either\n" +
+      "  java [java-options] interp [interp-options] script [args...]\n" +
+      "    (where 'interp' is 'org.erights.e.elang.interp.Interp')\n" +
+      "  java -jar [java-options] ehome/e.jar [interp-options] script [args...]\n" +
+      "    (where 'ehome' is the directory where E is installed)\n" +
+      "  e [e-options] script [args...]\n" +
+      "\n" +
+      "For java-options, consult 'java -help'\n" +
+      "For e-options, consult 'e --help'\n" +
+      "interp-options are:\n" +
+      "  -D<name>=<value>     Defines property.  Redundant with java-option,\n" +
+      "                       but provided for environments (like Cafe) in\n" +
+      "                       which it's difficult to provide java-options.\n" +
+      "  --help               Prints this text.\n" +
+      "script is one of\n" +
+      "  filename.e           The E script file to execute\n" +
+      "  -                    Use stdin as script file\n" +
+      "  --interact           An interactive command line\n";
 
     static private boolean uiInititialized = false;
 
     private ConstList myArgs;
+
     private ConstMap myProps;
+
     private TextWriter myOuts;
+
     private TextWriter myErrs;
 
     private ExternalRef myFarSelf;
+
     private EParser myParser;
+
     private Scope myTopScope;
 
     private boolean myVerboseFlag = false;
 
     private Object myTopLock = new Object();
+
     private boolean myShouldBlock = false;
+
     private boolean myShouldExit = false;
+
     private Throwable myOptProblem = null;
 
     /**
      * Must call setState() to initialize.  This allows subclassing.
      */
-    /*package*/ Interp() {}
+    /*package*/ Interp() {
+    }
 
     /**
      *
@@ -120,8 +129,7 @@
                               EParser parser,
                               Scope topScope,
 
-                              boolean verboseFlag)
-    {
+                              boolean verboseFlag) {
         myArgs = args;
         myProps = props;
         myOuts = outs;
@@ -188,7 +196,7 @@
      */
     public void setExpand(boolean flag) {
         throw new RuntimeException
-            ("can't setExpand in a non-interactive interpreter");
+          ("can't setExpand in a non-interactive interpreter");
     }
 
     /**
@@ -255,7 +263,7 @@
                               Runner runner,
                               LineFeeder optLineFeeder,
                               Scope optTopScope)
-    throws IOException, AlreadyDefinedException {
+      throws IOException, AlreadyDefinedException {
         String fname = "";
         if (optLineFeeder == null) {
             // [options...] [ (fname | "" | -) args...]
@@ -267,7 +275,7 @@
                 if (firstArg.length() >= 2 && firstArg.charAt(0) == '-') {
                     //option processing goes here.  else:
                     throw new IllegalArgumentException
-                        ("unrecognized: " + firstArg);
+                      ("unrecognized: " + firstArg);
                 } else {
                     fname = firstArg;
                     break;
@@ -284,7 +292,7 @@
                 //programmatically with a bug that triggers this exception,
                 //it may be reported to a user that will find it confusing.
                 throw new RuntimeException
-                    ("Missing file name.  Use '--help' for usage");
+                  ("Missing file name.  Use '--help' for usage");
             } else if (fname.equals("-")) {
                 //don't buffer the piped case
                 ins = PrintStreamWriter.in();
@@ -334,7 +342,7 @@
      *
      */
     public void blockAtTop() {
-        synchronized(myTopLock) {
+        synchronized (myTopLock) {
             myShouldBlock = true;
         }
     }
@@ -343,7 +351,7 @@
      *
      */
     public void continueAtTop() {
-        synchronized(myTopLock) {
+        synchronized (myTopLock) {
             myShouldBlock = false;
             myTopLock.notifyAll();
         }
@@ -354,7 +362,7 @@
      * with interpreter exiting.
      */
     public void exitAtTop(Throwable optProblem) {
-        synchronized(myTopLock) {
+        synchronized (myTopLock) {
             myShouldBlock = false;
             myShouldExit = true;
             myOptProblem = optProblem;
@@ -368,12 +376,11 @@
      * newlines.
      */
     static public TextWriter commentBlock(TextWriter out, String name)
-         throws IOException
-    {
+      throws IOException {
         String prefix = "# " + name + ": ";
         out.print(prefix);
         return out.indent("#" +
-                          StringHelper.multiply(" ", prefix.length() -1));
+                          StringHelper.multiply(" ", prefix.length() - 1));
     }
 
     /**
@@ -388,8 +395,7 @@
      */
     static public void reportProblem(Throwable t,
                                      TextWriter errs,
-                                     boolean verboseFlag)
-    {
+                                     boolean verboseFlag) {
         try {
             Throwable leaf = ThrowableSugar.leaf(t);
 
@@ -431,7 +437,7 @@
      */
     private void interpretOne() {
         try {
-            EExpr optExpr = (EExpr) myParser.optParse();
+            EExpr optExpr = (EExpr)myParser.optParse();
             if (null != optExpr) {
                 E.call(myFarSelf, "evalPrint", optExpr);
             }
@@ -447,7 +453,7 @@
                 ExceptionMgr.reportException(iox);
                 throw ExceptionMgr.asSafe(iox);
             }
-            synchronized(myTopLock) {
+            synchronized (myTopLock) {
                 while (myShouldBlock) {
                     try {
                         myTopLock.wait();
@@ -524,14 +530,13 @@
      * won't be statically importing swing.
      */
     static public void initSwingLnF(ConstMap props)
-    throws UnsupportedLookAndFeelException, ClassNotFoundException,
-           InstantiationException, IllegalAccessException
-    {
+      throws UnsupportedLookAndFeelException, ClassNotFoundException,
+      InstantiationException, IllegalAccessException {
         if (uiInititialized) {
             return;
         }
         String runnerType = (String)props.get("e.interp.runner", "fe");
-        if (! runnerType.equals("fe")) {
+        if (!runnerType.equals("fe")) {
             return;
         }
         uiInititialized = true;
@@ -558,7 +563,7 @@
      *
      */
     static /*package*/ void errorExit(TextWriter errs, ConstMap props)
-    throws IOException {
+      throws IOException {
         String oee = (String)props.get("e.onErrorExit", "report");
         if ("report".equals(oee)) {
             //do nothing, Error should already be reported in stderr
@@ -579,10 +584,9 @@
      *
      */
     static public void main(String[] argArray)
-    throws IOException, AlreadyDefinedException,
-           UnsupportedLookAndFeelException, ClassNotFoundException,
-           InstantiationException, IllegalAccessException
-    {
+      throws IOException, AlreadyDefinedException,
+      UnsupportedLookAndFeelException, ClassNotFoundException,
+      InstantiationException, IllegalAccessException {
         ConstList args = ConstList.fromArray(argArray);
         Properties sysProps = System.getProperties();
         TextWriter outs = new TextWriter(PrintStreamWriter.out(), true);
@@ -604,10 +608,10 @@
                 int equals = option.indexOf('=');
                 if (equals == -1) {
                     throw new IllegalArgumentException(
-                        "Property spec missing '=': " + option);
+                      "Property spec missing '=': " + option);
                 }
-                String name = option.substring(2,equals);
-                String value = option.substring(equals+1);
+                String name = option.substring(2, equals);
+                String value = option.substring(equals + 1);
                 sysProps.setProperty(name, value);
 
             } else if ("--interact".equals(option)) {
@@ -621,7 +625,7 @@
 
             } else {
                 throw new IllegalArgumentException(
-                    "Unrecognized option: " + option);
+                  "Unrecognized option: " + option);
             }
         }
 
@@ -642,7 +646,7 @@
             Enumeration iter = eprops.propertyNames();
             while (iter.hasMoreElements()) {
                 String key = (String)iter.nextElement();
-                if (! sysProps.containsKey(key)) {
+                if (!sysProps.containsKey(key)) {
                     sysProps.setProperty(key, eprops.getProperty(key));
                 }
             }
@@ -688,7 +692,7 @@
                                  errs,
 
                                  runner,
-                                 null,  //optLineFeeder
+                                 null, //optLineFeeder
                                  null); //optTopScope
         } catch (Throwable th) {
             reportProblem(th, errs, true);
@@ -709,7 +713,7 @@
     }
 
     static private void
-    printTime(long start) {
+      printTime(long start) {
         long stop = System.currentTimeMillis();
         System.out.println("Run after initialization: " + (stop - start) + " ms");
     }



1.5       +6 -3      e/src/jsrc/org/erights/e/elang/interp/LazyEvalSlot.java

Index: LazyEvalSlot.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elang/interp/LazyEvalSlot.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- LazyEvalSlot.java	2001/11/09 01:17:21	1.4
+++ LazyEvalSlot.java	2001/11/10 19:40:41	1.5
@@ -44,12 +44,15 @@
  *
  * @author Mark S. Miller
  */
-/*package*/ class LazyEvalSlot implements Slot {
+/*package*/
+class LazyEvalSlot implements Slot {
 
     /** only meaningful when myOptSource != null */
     private Object myOptScope;
+
     /** to be evaluated in myOptScope */
     private Twine myOptSource;
+
     /** only meaningful when myOptSource == null */
     private Object myOptValue;
 
@@ -77,8 +80,8 @@
     public Object getValue() {
         if (null != myOptSource) {
             //System.out.println("Lazy eval: " + myOptSource);
-            EExpr eExpr = (EExpr) EParser.run(myOptSource);
-            Scope scope = (Scope) E.as(myOptScope, Scope.class);
+            EExpr eExpr = (EExpr)EParser.run(myOptSource);
+            Scope scope = (Scope)E.as(myOptScope, Scope.class);
             myOptValue = eExpr.eval(scope.sprout());
             myOptScope = null;
             myOptSource = null;



1.2       +3 -1      e/src/jsrc/org/erights/e/elang/interp/Loader.java

Index: Loader.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elang/interp/Loader.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- Loader.java	2001/11/09 04:47:34	1.1
+++ Loader.java	2001/11/10 19:40:41	1.2
@@ -18,6 +18,7 @@
 
 Contributor(s): ______________________________________.
 */
+
 import org.erights.e.elib.eio.EPrintable;
 import org.erights.e.elib.eio.TextWriter;
 
@@ -28,7 +29,8 @@
  *
  * @author <a href="mailto:markm@erights.org">Mark S. Miller</a>
  */
-/*package*/ abstract public class Loader implements EPrintable {
+/*package*/
+abstract public class Loader implements EPrintable {
 
     abstract public Object get(String name);
 



1.36      +9 -6      e/src/jsrc/org/erights/e/elang/interp/LoaderScope.java

Index: LoaderScope.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elang/interp/LoaderScope.java,v
retrieving revision 1.35
retrieving revision 1.36
diff -u -r1.35 -r1.36
--- LoaderScope.java	2001/11/09 01:17:21	1.35
+++ LoaderScope.java	2001/11/10 19:40:41	1.36
@@ -18,6 +18,7 @@
 
 Contributor(s): ______________________________________.
 */
+
 import org.erights.e.develop.exception.ThrowableSugar;
 import org.erights.e.elang.evm.EExpr;
 import org.erights.e.elang.scope.Scope;
@@ -42,9 +43,11 @@
  *
  * @author <a href="mailto:markm@erights.org">Mark S. Miller</a>
  */
-/*package*/ class LoaderScope extends Loader {
+/*package*/
+class LoaderScope extends Loader {
 
     private Scope myUnivScope;
+
     private ClassLoader myOptLoader;
 
     /**
@@ -81,7 +84,7 @@
 
     /** returns null if not found */
     private Twine optESource(String fqName) {
-        String rName = fqName.replace('.','/') + ".emaker";
+        String rName = fqName.replace('.', '/') + ".emaker";
         URL resource = optResource(rName);
         if (resource == null) {
             return null;
@@ -138,7 +141,7 @@
         //XXX todo: look for E prefix as package
         Twine eSource = optESource(fqName);
         if (null != eSource) {
-            EExpr eExpr = (EExpr) EParser.run(eSource);
+            EExpr eExpr = (EExpr)EParser.run(eSource);
             //XXX Once we have the :confined auditor, we should detect
             //whether this object passes this auditor.
             isConfinedPtr[0] = false;
@@ -156,7 +159,7 @@
      */
     public Slot getLocalSlot(String fqName) {
 //System.out.println("LoaderScope.getting: " + fqName);
-        Slot result = (Slot) myAlreadyImported.get(fqName, null);
+        Slot result = (Slot)myAlreadyImported.get(fqName, null);
         if (null != result) {
             //XXX Once we detect that an emaker is confined and cache it for
             // longer, we need to also somehow check if a later ESource is
@@ -170,8 +173,8 @@
             return result;
         }
         Object[] promise = Ref.promise();
-        Ref ref = (Ref) promise[0];
-        Resolver resolver = (Resolver) promise[1];
+        Ref ref = (Ref)promise[0];
+        Resolver resolver = (Resolver)promise[1];
 
         result = FinalSlotMaker.THE_ONE.makeSlot(ref, null);
         myAlreadyImported.put(fqName, result, true);



1.6       +2 -1      e/src/jsrc/org/erights/e/elang/interp/Loop.java

Index: Loop.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elang/interp/Loop.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- Loop.java	2001/09/06 09:55:45	1.5
+++ Loop.java	2001/11/10 19:40:41	1.6
@@ -41,7 +41,8 @@
     /**
      *
      */
-    private Loop() {}
+    private Loop() {
+    }
 
     /**
      * Since the value is never used, we use type Runnable rather than Thunk.



1.22      +8 -7      e/src/jsrc/org/erights/e/elang/interp/PackageScope.java

Index: PackageScope.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elang/interp/PackageScope.java,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -r1.21 -r1.22
--- PackageScope.java	2001/11/09 01:17:21	1.21
+++ PackageScope.java	2001/11/10 19:40:41	1.22
@@ -18,9 +18,8 @@
 
 Contributor(s): ______________________________________.
 */
-import org.erights.e.elib.eio.TextWriter;
 
-import java.io.IOException;
+import org.erights.e.elib.eio.TextWriter;
 
 import java.io.IOException;
 
@@ -29,10 +28,13 @@
  *
  * @author <a href="mailto:markm@erights.org">Mark S. Miller</a>
  */
-/*package*/ class PackageScope extends Loader {
+/*package*/
+class PackageScope extends Loader {
 
     private Loader mySubstrate;
+
     private String myProtocol;
+
     private String myPrefix;
 
     /**
@@ -40,11 +42,10 @@
      */
     /*package*/ PackageScope(Loader substrate,
                              String protocol,
-                             String fqName)
-    {
+                             String fqName) {
         mySubstrate = substrate;
         myProtocol = protocol;
-        if (! fqName.endsWith(".*")) {
+        if (!fqName.endsWith(".*")) {
             throw new Error("internal: bad package name: " + fqName);
         }
         //chop off just the "*" (leave the terminal ".")
@@ -62,7 +63,7 @@
      *
      */
     public void printOn(TextWriter out) throws IOException {
-        if (! myPrefix.endsWith(".")) {
+        if (!myPrefix.endsWith(".")) {
             throw new Error("internal: bad package prefix: " + myPrefix);
         }
         out.print("<", myProtocol, myPrefix, "*>");



1.11      +7 -4      e/src/jsrc/org/erights/e/elang/interp/ProtocolDesc.java

Index: ProtocolDesc.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elang/interp/ProtocolDesc.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- ProtocolDesc.java	2001/09/06 09:55:45	1.10
+++ ProtocolDesc.java	2001/11/10 19:40:41	1.11
@@ -44,10 +44,11 @@
 public class ProtocolDesc extends TypeDesc {
 
     static public final StaticMaker ProtocolDescMaker =
-        StaticMaker.make(ProtocolDesc.class);
+      StaticMaker.make(ProtocolDesc.class);
 
     /** Must be closely held in the TCB */
     static /*package*/ Sealer MetaTypeSealer = null;
+
     /** Must be closely held in the TCB */
     static /*package*/ Unsealer MetaTypeUnsealer = null;
 
@@ -58,13 +59,13 @@
     }
 
     private Sealer mySealer;
+
     private Unsealer myUnsealer;
 
     public ProtocolDesc(String docComment,
                         String optName,
                         ConstList auditors,
-                        ConstList mTypes)
-    {
+                        ConstList mTypes) {
         super(docComment, optName, auditors, mTypes);
 
         Object[] pair = Brand.pair(getName());
@@ -72,7 +73,9 @@
         myUnsealer = (Unsealer)pair[1];
     }
 
-    public Brand getBrand() { return myUnsealer.brand(); }
+    public Brand getBrand() {
+        return myUnsealer.brand();
+    }
 
     /**
      * Used in a type's role as a ValueGuard.  A specimen



1.4       +2 -1      e/src/jsrc/org/erights/e/elang/interp/ResourceUriGetter.java

Index: ResourceUriGetter.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elang/interp/ResourceUriGetter.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- ResourceUriGetter.java	2001/09/06 09:55:45	1.3
+++ ResourceUriGetter.java	2001/11/10 19:40:41	1.4
@@ -29,7 +29,8 @@
 public class ResourceUriGetter {
 
     /** prevent instantiation */
-    private ResourceUriGetter() {}
+    private ResourceUriGetter() {
+    }
 
     /**
      * &lt;resource:...> expands to resource__uriGetter get(...)



1.68      +128 -118  e/src/jsrc/org/erights/e/elang/interp/ScopeSetup.java

Index: ScopeSetup.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elang/interp/ScopeSetup.java,v
retrieving revision 1.67
retrieving revision 1.68
diff -u -r1.67 -r1.68
--- ScopeSetup.java	2001/11/09 01:17:21	1.67
+++ ScopeSetup.java	2001/11/10 19:40:41	1.68
@@ -53,7 +53,6 @@
 import org.erights.e.elib.util.ClassCache;
 import org.erights.e.meta.java.io.FileGetter;
 
-import java.math.BigInteger;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.Set;
@@ -66,9 +65,11 @@
 abstract public class ScopeSetup {
 
     static private final Scope[] NO_SCOPES = {};
+
     static private final Object[] NO_VARS = {};
     // number of spaces to leave for more outers.
     static private final int OUTER_SPACE = 1000;
+
     /**
      * return null if not found
      */
@@ -88,56 +89,53 @@
      *       set a variable in NounExpr, so the cache is currently unneeded.
      */
     static public Set nonShadowable() {
-        return universal().keys();
+        return universalMaker().keys();
     }
 
     /**
-     * Returns a fresh instantiation of the universal scope.  This scope
-     * contains only transitively immutable objects, or objects like the
-     * importer (bound to "import:") with transparent-enough caches.  pIt
-     * conveys no substantial authority, and so can be given out freely.
+     *
      */
-    static private ScopeMaker universal() {
+    static private ScopeMaker universalMaker() {
         Object[] promise = Ref.promise();
-        Ref univ = (Ref) promise[0];
-        Resolver univResolver = (Resolver) promise[1];
+        Ref univ = (Ref)promise[0];
+        Resolver univResolver = (Resolver)promise[1];
 
         promise = Ref.promise();
-        Ref importer = (Ref) promise[0];
-        Resolver importerResolver = (Resolver) promise[1];
+        Ref importer = (Ref)promise[0];
+        Resolver importerResolver = (Resolver)promise[1];
 
         ScopeMaker um = new ScopeMaker();
         // The E expansion generates references to these:
-        um.comp("null",           null);
-        um.comp("false",          Boolean.FALSE);
-        um.comp("true",           Boolean.TRUE);
-        um.comp("throw",          Thrower.THE_ONE);
-        um.comp("loop",           Loop.THE_ONE);
-
-        um.init("E",              univ,                   // not uconstant
-            "<import:org.erights.e.elang.interp.E>");
-        um.comp("ListMaker",      univ,
-              "{def ListMaker0 {\n" +
-              "    match [==\"run\", args] { args }\n" +
-              "}}");
+        um.comp("null", null);
+        um.comp("false", Boolean.FALSE);
+        um.comp("true", Boolean.TRUE);
+        um.comp("throw", Thrower.THE_ONE);
+        um.comp("loop", Loop.THE_ONE);
+
+        um.init("E", univ, // not uconstant
+                "<import:org.erights.e.elang.interp.E>");
+        um.comp("ListMaker", univ,
+                "{def ListMaker0 {\n" +
+                "    match [==\"run\", args] { args }\n" +
+                "}}");
 
-        um.comp("MapMaker",       ConstMap.GetMaker());
-        um.comp("TwineMaker",     Twine.TwineMaker);
+        um.comp("MapMaker", ConstMap.GetMaker());
+        um.comp("TwineMaker", Twine.TwineMaker);
         um.comp("SourceSpanMaker", SourceSpan.SourceSpanMaker);
-        um.init("Ref",            Ref.RefMaker);          // not uconstant??
-        um.init("equalizer",       Equalizer.make());
+        um.init("Ref", Ref.RefMaker);          // not uconstant??
+        um.init("equalizer", Equalizer.make());
 
-        um.init("PromiseMaker",   Ref.RefMaker); //XXX deprecated?
+        um.init("PromiseMaker", Ref.RefMaker); //XXX deprecated?
 
         um.comp("ProtocolDescMaker", ProtocolDesc.ProtocolDescMaker);
-        um.comp("MessageDescMaker",  MessageDesc.MessageDescMaker);
-        um.comp("ParamDescMaker",    ParamDesc.ParamDescMaker);
-        um.comp("settable",       SettableSlotMaker.THE_ONE);
-        um.comp("final",          FinalSlotMaker.THE_ONE);
-        um.comp("defineSlot",     SlotDefiner.THE_ONE);
-        um.comp("any",            SimpleSlotMaker.THE_ONE);
-        um.comp("void",           VoidMaker.THE_ONE);
-        um.init("promiseAllFulfilled", univ,              // not uconstant?
+        um.comp("MessageDescMaker", MessageDesc.MessageDescMaker);
+        um.comp("ParamDescMaker", ParamDesc.ParamDescMaker);
+        um.comp("settable", SettableSlotMaker.THE_ONE);
+        um.comp("final", FinalSlotMaker.THE_ONE);
+        um.comp("defineSlot", SlotDefiner.THE_ONE);
+        um.comp("any", SimpleSlotMaker.THE_ONE);
+        um.comp("void", VoidMaker.THE_ONE);
+        um.init("promiseAllFulfilled", univ, // not uconstant?
                 "<import:org.erights.e.elang.interp.promiseAllFulfilled>");
 
         /*
@@ -145,50 +143,50 @@
          * scope, but are not implicitly used by the E expansion.
          */
 
-        um.init("help",           new Help());            // not uconstant
-        um.comp("require",        univ,
+        um.init("help", new Help());            // not uconstant
+        um.comp("require", univ,
                 "<import:org.erights.e.elang.interp.require>");
 
-        um.comp("nullOk",         NullOkMaker.THE_ONE);
-        um.comp("near",           univ,
+        um.comp("nullOk", NullOkMaker.THE_ONE);
+        um.comp("near", univ,
                 "<import:org.erights.e.elib.slot.near>");
-        um.comp("PassByCopy",     new RuinedSlot(new RuntimeException(
-                                "XXX PassByCopy auditor not yet implemented")));
-        um.comp("confined",       new RuinedSlot(new RuntimeException(
-                                "XXX confined auditor not yet implemented")));
+        um.comp("PassByCopy", new RuinedSlot(new RuntimeException(
+          "XXX PassByCopy auditor not yet implemented")));
+        um.comp("confined", new RuinedSlot(new RuntimeException(
+          "XXX confined auditor not yet implemented")));
 
-        um.comp("OrderedSpaceMaker",    univ,
+        um.comp("OrderedSpaceMaker", univ,
                 "<import:org.erights.e.elang.coord.OrderedSpaceMaker>");
-        um.comp("integer",              univ,
+        um.comp("integer", univ,
                 "OrderedSpaceMaker new(<import:java.math.BigInteger> asType(),"
-                +                    "\"integer\")");
-        um.comp("float64",              univ,
+                + "\"integer\")");
+        um.comp("float64", univ,
                 "OrderedSpaceMaker new(<import:java.lang.Double> TYPE(),"
-                +                    "\"float64\")");
-        um.comp("char",                 univ,
+                + "\"float64\")");
+        um.comp("char", univ,
                 "<import:org.erights.e.elang.coord.OrderedSpaceMaker>");
-        um.comp("OrderedSpaceMaker",    univ,
+        um.comp("OrderedSpaceMaker", univ,
                 "OrderedSpaceMaker new(<import:java.lang.Character> TYPE(),"
-                +                    "\"char\")");
+                + "\"char\")");
 
-        um.comp("boolean",        ClassDesc.make(Boolean.class));
-        um.comp("String",         ClassDesc.make(String.class));
-        um.comp("Twine",          ClassDesc.make(Twine.class));
-        um.comp("TextWriter",     ClassDesc.make(TextWriter.class));
-        um.comp("pbc",            PassByConstructionGuard.THE_ONE);
+        um.comp("boolean", ClassDesc.make(Boolean.class));
+        um.comp("String", ClassDesc.make(String.class));
+        um.comp("Twine", ClassDesc.make(Twine.class));
+        um.comp("TextWriter", ClassDesc.make(TextWriter.class));
+        um.comp("pbc", PassByConstructionGuard.THE_ONE);
 
-        um.init("import__uriGetter",   importer);         // not uconstant!!
-        um.init("resource__uriGetter",                    // not uconstant!!
+        um.init("import__uriGetter", importer);         // not uconstant!!
+        um.init("resource__uriGetter", // not uconstant!!
                 StaticMaker.make(ResourceUriGetter.class));
         um.comp("simple__quasiParser", SimpleQuasiParser.THE_ONE);
-        um.comp("rx__quasiParser",     univ,
-            "<import:org.erights.e.elang.interp.PerlMatchMakerMaker>");
-        um.comp("e__quasiParser",      EParser.EParserMaker);
-        um.comp("epatt__quasiParser",  univ,
-            "<import:org.erights.e.elang.syntax.epatt__quasiParser>");
-        um.comp("sml__quasiParser",    XMLQuasiParser.XMLQuasiParserMaker);
+        um.comp("rx__quasiParser", univ,
+                "<import:org.erights.e.elang.interp.PerlMatchMakerMaker>");
+        um.comp("e__quasiParser", EParser.EParserMaker);
+        um.comp("epatt__quasiParser", univ,
+                "<import:org.erights.e.elang.syntax.epatt__quasiParser>");
+        um.comp("sml__quasiParser", XMLQuasiParser.XMLQuasiParserMaker);
 
-        um.init("universalScope",      univ);             // not uconstant
+        um.init("universalScope", univ);             // not uconstant
         Scope realUniv = um.scope();
 
         univResolver.resolve(realUniv);
@@ -197,6 +195,16 @@
     }
 
     /**
+     * Returns a fresh instantiation of the universal scope.  This scope
+     * contains only transitively immutable objects, or objects like the
+     * importer (bound to "import:") with transparent-enough caches.  It
+     * conveys no substantial authority, and so can be given out freely.
+     */
+    static public Scope universal() {
+        return universalMaker().copy().scope();
+    }
+
+    /**
      * Returns a fresh instantiation of the privileged scope.  <p>
      *
      * This scope contains the root magic powers, so should only be given to
@@ -205,8 +213,7 @@
     static public Scope privileged(boolean interactive,
                                    TextWriter stdout,
                                    TextWriter stderr,
-                                   Object interp)
-    {
+                                   Object interp) {
         ConstMap props = (ConstMap)E.as(E.call(interp, "getProps"),
                                         ConstMap.class);
         return privileged(interactive,
@@ -224,14 +231,13 @@
                                    TextWriter stdout,
                                    TextWriter stderr,
                                    ConstMap props,
-                                   Object interpPromise)
-    {
+                                   Object interpPromise) {
         // XXX need some decent way to handle magic powers.
         StaticMaker entropyMaker =
-            StaticMaker.make(getClass("net.vattp.security.ESecureRandom"));
+          StaticMaker.make(getClass("net.vattp.security.ESecureRandom"));
         Object optEntropy = E.call(entropyMaker, "getESecureRandom");
         StaticMaker timerMaker =
-            StaticMaker.make(getClass("org.erights.e.extern.timer.Timer"));
+          StaticMaker.make(getClass("org.erights.e.extern.timer.Timer"));
         Object optTimer = E.call(timerMaker, "theTimer");
         //XXX pretend we have separate persistent & transient timers
         Object optTempTimer = optTimer;
@@ -239,7 +245,7 @@
         Object optIntroducer = null;
         Object optSturdifier = null;
         Class optIntroducerClass =
-            getClass("net.captp.jcomm.Introducer");
+          getClass("net.captp.jcomm.Introducer");
         if (null == optIntroducerClass) {
             //We're space-local.  Leave the above magic powers as null
         } else {
@@ -255,53 +261,53 @@
         }
 
         Object[] promise = Ref.promise();
-        Ref privScope = (Ref) promise[0];
-        Resolver privResolver = (Resolver) promise[1];
+        Ref privScope = (Ref)promise[0];
+        Resolver privResolver = (Resolver)promise[1];
 
-        ScopeMaker pm = universal().copy();
-        pm.init("file__uriGetter",    StaticMaker.make(FileGetter.class));
+        ScopeMaker pm = universalMaker().copy();
+        pm.init("file__uriGetter", StaticMaker.make(FileGetter.class));
         pm.init("fileURL__uriGetter", new URLGetter("file"));
-        pm.init("http__uriGetter",    new URLGetter("http"));
-        pm.init("ftp__uriGetter",     new URLGetter("ftp"));
-        pm.init("gopher__uriGetter",  new URLGetter("gopher"));
-        pm.init("news__uriGetter",    new URLGetter("news"));
-        pm.init("cap__uriGetter",     optIntroducer);
-
-        pm.init("unsafe__uriGetter",  new UnsafeLoaderScope());
-        pm.init("awt__uriGetter",     privScope,
-            "<unsafe:java.awt.*>");
-        pm.init("swing__uriGetter",   privScope,
-            "<unsafe:javax.swing.*>");
+        pm.init("http__uriGetter", new URLGetter("http"));
+        pm.init("ftp__uriGetter", new URLGetter("ftp"));
+        pm.init("gopher__uriGetter", new URLGetter("gopher"));
+        pm.init("news__uriGetter", new URLGetter("news"));
+        pm.init("cap__uriGetter", optIntroducer);
+
+        pm.init("unsafe__uriGetter", new UnsafeLoaderScope());
+        pm.init("awt__uriGetter", privScope,
+                "<unsafe:java.awt.*>");
+        pm.init("swing__uriGetter", privScope,
+                "<unsafe:javax.swing.*>");
         pm.init("JPanel__quasiParser", privScope,
-            "<import:org.erights.ex.swing.JPanelQParserMaker> " +
-            "new(awt__uriGetter, swing__uriGetter)");
+                "<import:org.erights.ex.swing.JPanelQParserMaker> " +
+                "new(awt__uriGetter, swing__uriGetter)");
 
-        pm.init("CommandMaker",       privScope,
-              "<import:org.erights.e.elib.extern.CommandMakerAuthor>(" +
-                  "<unsafe:java.lang.Runtime> getRuntime())");
-
-        pm.init("stdout",             stdout);
-        pm.init("stderr",             stderr);
-        pm.init("print",              privScope,
-              "{def print {\n" +
-              "    match [==\"run\", args] {\n" +
-              "        stdout printAll(args)\n" +
-              "    }\n" +
-              "}}");
-        pm.init("println",            privScope,
-              "{def println {\n" +
-              "    match [==\"run\", args] {\n" +
-              "        stdout printAll(args)\n" +
-              "        stdout println()\n" +
-              "    }\n" +
-              "}}");
-        pm.init("interp",             interpPromise);
-
-        pm.init("entropy",            optEntropy);
-        pm.init("timer",              optTimer);
-        pm.init("tempTimer",          optTempTimer);
-        pm.init("introducer",         optIntroducer);
-        pm.init("sturdyRef",          optSturdifier);
+        pm.init("CommandMaker", privScope,
+                "<import:org.erights.e.elib.extern.CommandMakerAuthor>(" +
+                "<unsafe:java.lang.Runtime> getRuntime())");
+
+        pm.init("stdout", stdout);
+        pm.init("stderr", stderr);
+        pm.init("print", privScope,
+                "{def print {\n" +
+                "    match [==\"run\", args] {\n" +
+                "        stdout printAll(args)\n" +
+                "    }\n" +
+                "}}");
+        pm.init("println", privScope,
+                "{def println {\n" +
+                "    match [==\"run\", args] {\n" +
+                "        stdout printAll(args)\n" +
+                "        stdout println()\n" +
+                "    }\n" +
+                "}}");
+        pm.init("interp", interpPromise);
+
+        pm.init("entropy", optEntropy);
+        pm.init("timer", optTimer);
+        pm.init("tempTimer", optTempTimer);
+        pm.init("introducer", optIntroducer);
+        pm.init("sturdyRef", optSturdifier);
 
         //pm.init("privilegedScope",    privScope);
         Scope priv = pm.scope(interactive);
@@ -310,9 +316,11 @@
     }
 
     static private class ScopeMaker {
+
         static private final int DEFAULT_SIZE = 50;
 
         private ArrayList myOuters;
+
         private HashMap myBindings;
 
         public ScopeMaker() {
@@ -330,7 +338,9 @@
                                   new HashMap(myBindings));
         }
 
-        public Set keys() { return myBindings.keySet(); }
+        public Set keys() {
+            return myBindings.keySet();
+        }
 
         public Scope scope() {
             return scope(false);
@@ -340,7 +350,7 @@
             ScopeMap outerNouns = ScopeMap.make(myBindings);
             int outerCount = myOuters.size();
             int outerSpace = outerCount + OUTER_SPACE;
-            Slot[] outers = (Slot[]) myOuters.toArray(new Slot[outerSpace]);
+            Slot[] outers = (Slot[])myOuters.toArray(new Slot[outerSpace]);
             return OuterScope.make(outerNouns, outers, outerCount, isMutable);
         }
 



1.7       +1 -0      e/src/jsrc/org/erights/e/elang/interp/URLGetter.java

Index: URLGetter.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elang/interp/URLGetter.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- URLGetter.java	2001/09/06 09:55:45	1.6
+++ URLGetter.java	2001/11/10 19:40:41	1.7
@@ -18,6 +18,7 @@
 
 Contributor(s): ______________________________________.
 */
+
 import java.net.MalformedURLException;
 import java.net.URL;
 



1.9       +4 -2      e/src/jsrc/org/erights/e/elang/interp/UnsafeLoaderScope.java

Index: UnsafeLoaderScope.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elang/interp/UnsafeLoaderScope.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- UnsafeLoaderScope.java	2001/11/09 01:17:21	1.8
+++ UnsafeLoaderScope.java	2001/11/10 19:40:41	1.9
@@ -18,6 +18,7 @@
 
 Contributor(s): ______________________________________.
 */
+
 import org.erights.e.elib.eio.TextWriter;
 import org.erights.e.elib.prim.StaticMaker;
 import org.erights.e.elib.ref.Ref;
@@ -35,7 +36,8 @@
  *
  * @author <a href="mailto:markm@erights.org">Mark S. Miller</a>
  */
-/*package*/ class UnsafeLoaderScope extends Loader {
+/*package*/
+class UnsafeLoaderScope extends Loader {
 
     private ClassLoader myOptLoader;
 
@@ -96,7 +98,7 @@
      * Must handle cyclic imports
      */
     private Slot getLocalSlot(String fqName) {
-        Slot result = (Slot) myLocals.get(fqName, null);
+        Slot result = (Slot)myLocals.get(fqName, null);
         if (null != result) {
             //XXX Should also somehow check if a later ESource is
             // available, and, if so, use it and (perhaps?) upgrade



1.2       +11 -1     e/src/jsrc/org/erights/e/elang/scope/EvalContext.java

Index: EvalContext.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elang/scope/EvalContext.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- EvalContext.java	2001/11/09 04:47:34	1.1
+++ EvalContext.java	2001/11/10 19:40:41	1.2
@@ -18,6 +18,7 @@
 
 Contributor(s): ______________________________________.
 */
+
 import org.erights.e.elib.slot.Slot;
 
 /**
@@ -31,11 +32,14 @@
 public class EvalContext {
 
     static private final int LOCAL_COUNT = 64;
+
     static private Object[] NO_FIELDS = {};
 
     // Idealy, this should cache no-longer-used local arrays.
     private Object[] myLocals;
+
     private Object[] myFields;
+
     private OuterScope myOuters;
 
     static public EvalContext make(int localCount, Object[] fields, OuterScope outers) {
@@ -70,13 +74,18 @@
     public Object local(int index) {
         return myLocals[index];
     }
+
     public Object field(int index) {
         return myFields[index];
     }
+
     public Slot outer(int index) {
         return myOuters.getIndex(index);
+    }
+
+    public OuterScope outers() {
+        return myOuters;
     }
-    public OuterScope outers() { return myOuters; }
 
     public void initLocal(int index, Object value) {
         if (index >= myLocals.length) {
@@ -84,6 +93,7 @@
         }
         myLocals[index] = value;
     }
+
     public void initField(int index, Object value) {
         myFields[index] = value;
     }



1.2       +2 -3      e/src/jsrc/org/erights/e/elang/scope/InnerScope.java

Index: InnerScope.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elang/scope/InnerScope.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- InnerScope.java	2001/11/09 04:47:34	1.1
+++ InnerScope.java	2001/11/10 19:40:41	1.2
@@ -37,7 +37,7 @@
      */
     public InnerScope(ScopeMap scopeMap, EvalContext ctx) {
         super(scopeMap);
-	myEvalContext = ctx;
+        myEvalContext = ctx;
     }
 
     public NounExpr reserveOuter(String name) {
@@ -52,8 +52,7 @@
      *
      */
     public void bindOuter(String name, Slot slot)
-	     throws AlreadyDefinedException
-    {
+      throws AlreadyDefinedException {
         myEvalContext.outers().bindOuter(name, slot);
     }
 



1.2       +21 -15    e/src/jsrc/org/erights/e/elang/scope/OuterScope.java

Index: OuterScope.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elang/scope/OuterScope.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- OuterScope.java	2001/11/09 04:47:34	1.1
+++ OuterScope.java	2001/11/10 19:40:41	1.2
@@ -33,18 +33,21 @@
 public class OuterScope extends Scope {
 
     private Slot[] myOuters;
+
     private int myNextOuter;
+
     private boolean myIsMutable;
 
-    static public OuterScope make(ScopeMap map, Slot[] outers, int nextOuter) {
+    static public OuterScope make(ScopeMap map,
+                                  Slot[] outers,
+                                  int nextOuter) {
         return new OuterScope(map, outers, nextOuter, false);
     }
 
     static public OuterScope make(ScopeMap map,
                                   Slot[] outers,
                                   int nextOuter,
-                                  boolean isMutable)
-    {
+                                  boolean isMutable) {
         return new OuterScope(map, outers, nextOuter, isMutable);
     }
 
@@ -54,11 +57,10 @@
     private OuterScope(ScopeMap map,
                        Slot[] outers,
                        int nextOuter,
-                       boolean isMutable)
-    {
+                       boolean isMutable) {
         super(map);
-	myOuters = outers;
-	myNextOuter = nextOuter;
+        myOuters = outers;
+        myNextOuter = nextOuter;
         myIsMutable = isMutable;
     }
 
@@ -86,7 +88,7 @@
         if (myNextOuter >= myOuters.length) {
             int len = myOuters.length;
             int newLen = Math.max(len + 32, myNextOuter + 1);
-        //            System.err.println("Allocated locals: " + len + " to " + newLen);
+            //System.err.println("Allocated locals: " + len + " to " + newLen);
             Slot[] newOuters = new Slot[newLen];
             System.arraycopy(myOuters, 0, newOuters, 0, len);
             myOuters = newOuters;
@@ -98,23 +100,27 @@
      * Sprouted scopes are never mutable.
      */
     public Scope sprout() {
-        return new OuterScope(myScopeMap, (Slot[]) myOuters.clone(), myNextOuter, false);
+        return new OuterScope(myScopeMap,
+                              (Slot[])myOuters.clone(),
+                              myNextOuter,
+                              false);
     }
 
-    public ConstMap locals() { throw new RuntimeException("TODO unimplemented"); }
+    public ConstMap locals() {
+        throw new RuntimeException("TODO unimplemented");
+    }
 
     public Slot getSlot(String name) {
-	OuterNounExpr noun = (OuterNounExpr) myScopeMap.getNoun(name);
-	return myOuters[noun.getIndex()];
+        OuterNounExpr noun = (OuterNounExpr)myScopeMap.getNoun(name);
+        return myOuters[noun.getIndex()];
     }
 
     /**
      *
      */
     public void bindOuter(String name, Slot slot)
-         throws AlreadyDefinedException
-    {
-        OuterNounExpr noun = (OuterNounExpr) reserveOuter(name);
+      throws AlreadyDefinedException {
+        OuterNounExpr noun = (OuterNounExpr)reserveOuter(name);
         myOuters[noun.getIndex()] = slot;
     }
 



1.46      +38 -34    e/src/jsrc/org/erights/e/elang/scope/Scope.java

Index: Scope.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elang/scope/Scope.java,v
retrieving revision 1.45
retrieving revision 1.46
diff -u -r1.45 -r1.46
--- Scope.java	2001/11/09 01:17:22	1.45
+++ Scope.java	2001/11/10 19:40:41	1.46
@@ -18,6 +18,7 @@
 
 Contributor(s): ______________________________________.
 */
+
 import org.erights.e.develop.format.StringHelper;
 import org.erights.e.elang.evm.ENode;
 import org.erights.e.elang.evm.NounExpr;
@@ -65,19 +66,21 @@
     }
 
     /**
-      * The default put() is defined in the obvious fashion in
-      * terms of getSlot().setValue(newValue).  <p>
+     * The default put() is defined in the obvious fashion in
+     * terms of getSlot().setValue(newValue).  <p>
      */
-     public void put(String name, Object newValue) {
-	 getSlot(name).setValue(newValue);
-     }
+    public void put(String name, Object newValue) {
+        getSlot(name).setValue(newValue);
+    }
 
     /**
      * Return a new scope that does not share outers data structures with the receiver.
      */
     abstract public Scope sprout();
 
-    public ScopeMap scopeMap() { return myScopeMap; }
+    public ScopeMap scopeMap() {
+        return myScopeMap;
+    }
 
     abstract public NounExpr reserveOuter(String name);
 
@@ -86,30 +89,30 @@
      */
     public ConstMap asMap() {
         throw new RuntimeException("TODO unimplemented");
- /*       Scope[] folks = parents();
-        if (0 == folks.length) {
-            return locals();
-        } else {
-            ConstMap result = ConstMap.EmptyMap;
-            ConstMap ruins = ConstMap.EmptyMap;
-            for (int i = 0; i < folks.length; i++) {
-                ConstMap parentMap = folks[i].asMap();
-                ruins = ruins.or(result.and(parentMap));
-                result = result.or(parentMap);
-            }
-            ruins = ruins.butNot(locals());
-            FlexMap ruinTable = FlexMap.fromTypes(String.class,
-                                                  Object.class);
-            String[] keys = (String[])ruins.getKeys(String.class);
-            for (int i = 0; i < keys.length; i++) {
-                String name = keys[i];
-                AlreadyDefinedException problem =
-                    new AlreadyDefinedException(name + " ambiguous");
-                ruinTable.put(name, new RuinedSlot(problem));
-            }
-            return locals().or(ruinTable.snapshot().or(result));
-    */
-        }
+        /*       Scope[] folks = parents();
+               if (0 == folks.length) {
+                   return locals();
+               } else {
+                   ConstMap result = ConstMap.EmptyMap;
+                   ConstMap ruins = ConstMap.EmptyMap;
+                   for (int i = 0; i < folks.length; i++) {
+                       ConstMap parentMap = folks[i].asMap();
+                       ruins = ruins.or(result.and(parentMap));
+                       result = result.or(parentMap);
+                   }
+                   ruins = ruins.butNot(locals());
+                   FlexMap ruinTable = FlexMap.fromTypes(String.class,
+                                                         Object.class);
+                   String[] keys = (String[])ruins.getKeys(String.class);
+                   for (int i = 0; i < keys.length; i++) {
+                       String name = keys[i];
+                       AlreadyDefinedException problem =
+                           new AlreadyDefinedException(name + " ambiguous");
+                       ruinTable.put(name, new RuinedSlot(problem));
+                   }
+                   return locals().or(ruinTable.snapshot().or(result));
+           */
+    }
 
 
     /**
@@ -120,8 +123,8 @@
      * 'name' => 'slot' binding to itself if necessary.
      */
     public void bindFinal(String name, Object theValue)
-    throws AlreadyDefinedException {
-	Slot slot = FinalSlotMaker.THE_ONE.makeSlot(theValue, null);
+      throws AlreadyDefinedException {
+        Slot slot = FinalSlotMaker.THE_ONE.makeSlot(theValue, null);
         bindOuter(name, slot);
     }
 
@@ -162,11 +165,12 @@
      * If there already is a local named 'name', bindOuter() replaces it.
      */
     public abstract void bindOuter(String name, Slot slot)
-	    throws AlreadyDefinedException;
+      throws AlreadyDefinedException;
 
     /**
      *
      */
-    protected ConstMap locals() { return null;  // TODO
+    protected ConstMap locals() {
+        return null;  // TODO
     }
 }



1.2       +15 -4     e/src/jsrc/org/erights/e/elang/scope/ScopeMap.java

Index: ScopeMap.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elang/scope/ScopeMap.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- ScopeMap.java	2001/11/09 04:47:34	1.1
+++ ScopeMap.java	2001/11/10 19:40:41	1.2
@@ -75,13 +75,16 @@
  *
  */
 class ContourBoundary extends ScopeMap {
+
     private ScopeMap myNext;
 
     public ContourBoundary(ScopeMap outer) {
         myNext = outer;
     }
 
-    public int count() {  return myNext.count(); }
+    public int count() {
+        return myNext.count();
+    }
 
     public NounExpr getNoun(String name) {
         return myNext.getNoun(name);
@@ -114,8 +117,11 @@
  *
  */
 class ScopeMapLink extends ScopeMap {
+
     private ScopeMap myNext;
+
     private final String myName;
+
     private final NounExpr myNoun;
 
     public ScopeMapLink(String name, NounExpr noun, ScopeMap others) {
@@ -124,7 +130,9 @@
         myNoun = noun;
     }
 
-    public int count() {  return myNext.count() + 1; }
+    public int count() {
+        return myNext.count() + 1;
+    }
 
     public NounExpr getNoun(String name) {
         // TODO markm are we guaranteed that the names are canonical?
@@ -152,16 +160,19 @@
 }
 
 class ScopeMapBase extends ScopeMap {
+
     private final Map myBindings;
 
     public ScopeMapBase(Map bindings) {
         myBindings = bindings;
     }
 
-    public int count() {  return myBindings.size(); }
+    public int count() {
+        return myBindings.size();
+    }
 
     public NounExpr getNoun(String name) {
-        NounExpr optRes = (NounExpr) myBindings.get(name);
+        NounExpr optRes = (NounExpr)myBindings.get(name);
         if (optRes == null) {
             throw new UndefinedVariableException(name + " not in scope");
         }



1.6       +7 -2      e/src/jsrc/org/erights/e/elang/scope/UndefinedVariableException.java

Index: UndefinedVariableException.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elang/scope/UndefinedVariableException.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- UndefinedVariableException.java	2001/09/06 09:55:45	1.5
+++ UndefinedVariableException.java	2001/11/10 19:40:41	1.6
@@ -24,6 +24,11 @@
  * @author <a href="mailto:markm@erights.org">Mark S. Miller</a>
  */
 public class UndefinedVariableException extends IndexOutOfBoundsException {
-    public UndefinedVariableException() {}
-    public UndefinedVariableException(String varName) { super(varName); }
+
+    public UndefinedVariableException() {
+    }
+
+    public UndefinedVariableException(String varName) {
+        super(varName);
+    }
 }



1.7       +12 -4     e/src/jsrc/org/erights/e/elang/syntax/Assoc.java

Index: Assoc.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elang/syntax/Assoc.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- Assoc.java	2001/09/06 09:55:46	1.6
+++ Assoc.java	2001/11/10 19:40:41	1.7
@@ -24,15 +24,23 @@
  *
  * @author <a href="mailto:markm@erights.org">Mark S. Miller</a>
  */
-/*package*/ class Assoc {
+/*package*/
+class Assoc {
 
     private Object myKey;
+
     private Object myValue;
 
     public Assoc(Object key, Object value) {
-        myKey   = key;
+        myKey = key;
         myValue = value;
+    }
+
+    public Object key() {
+        return myKey;
+    }
+
+    public Object value() {
+        return myValue;
     }
-    public Object key()   { return myKey; }
-    public Object value() { return myValue; }
 }



1.84      +96 -92    e/src/jsrc/org/erights/e/elang/syntax/EBuilder.java

Index: EBuilder.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elang/syntax/EBuilder.java,v
retrieving revision 1.83
retrieving revision 1.84
diff -u -r1.83 -r1.84
--- EBuilder.java	2001/11/09 01:17:22	1.83
+++ EBuilder.java	2001/11/10 19:40:42	1.84
@@ -72,37 +72,52 @@
  */
 public abstract class EBuilder {
 
-    static /*package*/ final EExpr NULL         = noun("null");
-    static /*package*/ final EExpr FALSE        = noun("false");
-    static /*package*/ final EExpr TRUE         = noun("true");
-    static /*package*/ final EExpr THROW        = noun("throw");
-    static /*package*/ final EExpr LOOP         = noun("loop");
-
-    static /*package*/ final EExpr EE           = noun("E");
-    static /*package*/ final EExpr LISTMAKER    = noun("ListMaker");
-    static /*package*/ final EExpr MAPMAKER     = noun("MapMaker");
-    static /*package*/ final EExpr TWINEMAKER   = noun("TwineMaker");
-    static /*package*/ final EExpr SSPANMAKER   = noun("SourceSpanMaker");
-    static /*package*/ final EExpr REF          = noun("Ref");
-
-    static /*package*/ final EExpr PROTMAKER    = noun("ProtocolDescMaker");
-    static /*package*/ final EExpr MSGMAKER     = noun("MessageDescMaker");
-    static /*package*/ final EExpr PARAMMAKER   = noun("ParamDescMaker");
-
-    static /*package*/ final EExpr FINAL        = noun("final");
-    static /*package*/ final EExpr SETTABLE     = noun("settable");
-    static /*package*/ final EExpr DEFINESLOT   = noun("defineSlot");
-    static /*package*/ final EExpr ANY          = noun("any");
-    static /*package*/ final EExpr VOID         = noun("void");
-    static /*package*/ final EExpr EQUALIZER    = noun("equalizer");
+    static /*package*/ final EExpr NULL = noun("null");
 
-    static /*package*/ final EExpr
-    PROMISE_ALL_FULFILLED                       = noun("promiseAllFulfilled");
+    static /*package*/ final EExpr FALSE = noun("false");
+
+    static /*package*/ final EExpr TRUE = noun("true");
+
+    static /*package*/ final EExpr THROW = noun("throw");
+
+    static /*package*/ final EExpr LOOP = noun("loop");
+
+    static /*package*/ final EExpr EE = noun("E");
+
+    static /*package*/ final EExpr LISTMAKER = noun("ListMaker");
+
+    static /*package*/ final EExpr MAPMAKER = noun("MapMaker");
+
+    static /*package*/ final EExpr TWINEMAKER = noun("TwineMaker");
+
+    static /*package*/ final EExpr SSPANMAKER = noun("SourceSpanMaker");
+
+    static /*package*/ final EExpr REF = noun("Ref");
+
+    static /*package*/ final EExpr PROTMAKER = noun("ProtocolDescMaker");
+
+    static /*package*/ final EExpr MSGMAKER = noun("MessageDescMaker");
+
+    static /*package*/ final EExpr PARAMMAKER = noun("ParamDescMaker");
 
+    static /*package*/ final EExpr FINAL = noun("final");
 
+    static /*package*/ final EExpr SETTABLE = noun("settable");
+
+    static /*package*/ final EExpr DEFINESLOT = noun("defineSlot");
+
+    static /*package*/ final EExpr ANY = noun("any");
+
+    static /*package*/ final EExpr VOID = noun("void");
+
+    static /*package*/ final EExpr EQUALIZER = noun("equalizer");
+
     static /*package*/ final EExpr
-    ORDEREDSPACEMAKER                           = noun("OrderedSpaceMaker");
+      PROMISE_ALL_FULFILLED = noun("promiseAllFulfilled");
+
 
+    static /*package*/ final EExpr
+      ORDEREDSPACEMAKER = noun("OrderedSpaceMaker");
 
 
     private HilbertHotel myHilbert = new HilbertHotel();
@@ -158,7 +173,7 @@
      */
     /*package*/ void pocket(String pName) {
         String propName = "e.enable." + pName;
-        if (! Interp.testProp(myProps, propName)) {
+        if (!Interp.testProp(myProps, propName)) {
             syntaxError("The optional " + propName +
                         " feature in eprops.txt is currently off.");
         }
@@ -216,7 +231,7 @@
                 newVerb = "setRun";
             }
             if (null != newVerb) {
-                EExpr[] newArgs = new EExpr[args.length +1];
+                EExpr[] newArgs = new EExpr[args.length + 1];
                 System.arraycopy(args, 0, newArgs, 0, args.length);
                 String ares = newTemp("ares");
                 newArgs[args.length] = define(finalPattern(ares), rval);
@@ -297,7 +312,7 @@
                                Object args) {
         String propName = (String)propertyName;
         String verb = "get" + Character.toUpperCase(propName.charAt(0))
-                            + propName.substring(1);
+          + propName.substring(1);
         return call(recipientExpr, verb, args);
     }
 
@@ -425,9 +440,9 @@
     /*package*/ EExpr classExpr(Object classHead, Object mBody) {
 
         Object[] audits = (Object[])((EList)classHead).get(0);
-        Object patts =              ((EList)classHead).get(1);
+        Object patts = ((EList)classHead).get(1);
         Pattern[] patterns = (Pattern[])typedArray(patts, Pattern.class);
-        EExpr returnGuard =   (EExpr)((EList)classHead).get(2);
+        EExpr returnGuard = (EExpr)((EList)classHead).get(2);
         EExpr body = (EExpr)mBody;
 
         Pattern[] extra = new Pattern[patterns.length + 1];
@@ -443,7 +458,7 @@
         for (int i = 0; i < patterns.length; i++) {
             String temp = newTemp("p");
             params[i] = finalPattern(temp);
-            args[i+1] = noun(temp);
+            args[i + 1] = noun(temp);
         }
 
         String makerN = newTemp("maker");
@@ -477,7 +492,7 @@
         StaticScope rightScope = ((EExpr)right).staticScope();
         StaticScope fullScope = leftScope.add(rightScope);
         String[] names
-            = (String[])fullScope.namesOut().getKeys(String.class);
+          = (String[])fullScope.namesOut().getKeys(String.class);
 
         return matchBind(hide(ifx(left,
                                   ifx(right,
@@ -501,23 +516,23 @@
      * } =~ [&nameOut, ...]
      */
     /*package*/ EExpr condOr(Object left, Object right) {
-        ConstMap leftOut  = ((EExpr)left).staticScope().namesOut();
+        ConstMap leftOut = ((EExpr)left).staticScope().namesOut();
         ConstMap rightOut = ((EExpr)right).staticScope().namesOut();
-        ConstMap fullOut   = leftOut.or(rightOut);
-        ConstMap leftOnly  = leftOut.butNot(rightOut);
+        ConstMap fullOut = leftOut.or(rightOut);
+        ConstMap leftOnly = leftOut.butNot(rightOut);
         ConstMap rightOnly = rightOut.butNot(leftOut);
-        String[] names          = (String[])fullOut.getKeys(String.class);
-        String[] leftOnlyNames  = (String[])leftOnly.getKeys(String.class);
+        String[] names = (String[])fullOut.getKeys(String.class);
+        String[] leftOnlyNames = (String[])leftOnly.getKeys(String.class);
         String[] rightOnlyNames = (String[])rightOnly.getKeys(String.class);
         return matchBind(hide(ifx(left,
-                                  sequence(matchBind(NULL,
-                                               slotsPattern(rightOnlyNames)),
-                                           slotsTuple(names)),
-                              ifx(right,
                                   sequence(matchBind(NULL,
-                                               slotsPattern(leftOnlyNames)),
+                                                     slotsPattern(rightOnlyNames)),
                                            slotsTuple(names)),
-                                  NULL))),
+                                  ifx(right,
+                                      sequence(matchBind(NULL,
+                                                         slotsPattern(leftOnlyNames)),
+                                               slotsTuple(names)),
+                                      NULL))),
                          slotsPattern(names));
     }
 
@@ -561,13 +576,13 @@
             /*
              * newNameR resolve(&oldName)
              */
-            result[numVars+1 + i] = call(noun(newNameR),
-                                         "resolve",
-                                         list(slotExpr(oldName)));
+            result[numVars + 1 + i] = call(noun(newNameR),
+                                           "resolve",
+                                           list(slotExpr(oldName)));
         }
         String resName = newTemp("res");
         result[numVars] = null;
-        result[result.length -1] = noun(resName);
+        result[result.length - 1] = noun(resName);
         return result;
     }
 
@@ -588,7 +603,7 @@
         EExpr[] parts = antiCycle(conflicts);
         RenameVisitor renamer = new RenameVisitor(conflicts);
         rVal = renamer.xformEExpr(rVal);
-        NounExpr resNoun = (NounExpr)parts[parts.length -1];
+        NounExpr resNoun = (NounExpr)parts[parts.length - 1];
         Pattern resPatt = finalPattern(resNoun.name());
         parts[numVars] = new DefineExpr(resPatt,
                                         new DefineExpr(patt, rVal));
@@ -732,8 +747,7 @@
      * </pre>
      */
     /*package*/ Pattern bindDefiner(Object name,
-                                    Object valueGuardExpr)
-    {
+                                    Object valueGuardExpr) {
         String nom = (String)name;
         String nomR = nom + "__Resolver";
         String temp = newTemp(nom);
@@ -764,11 +778,11 @@
         String args = newTemp("args");
 
         return matcher(listPattern(list(finalPattern(verb),
-                                         finalPattern(args))),
+                                        finalPattern(args))),
                        call(EE, "call",
                             list(bodyExpr,
-                                noun(verb),
-                                noun(args))));
+                                 noun(verb),
+                                 noun(args))));
     }
 
     /**
@@ -997,12 +1011,12 @@
      *
      */
     /*package*/ EMethodNode method(Object msgPatt, Object bodyExpr) {
-        MsgPatt patt = (MsgPatt) msgPatt;
+        MsgPatt patt = (MsgPatt)msgPatt;
         EMethod meth = new EMethod("", //XXX will be a docComment
-                           patt.verb(),
-                           patt.patterns(),
-                           patt.returnGuard(),
-                           (EExpr)bodyExpr);
+                                   patt.verb(),
+                                   patt.patterns(),
+                                   patt.returnGuard(),
+                                   (EExpr)bodyExpr);
         return new EMethodNode(patt.verb(), patt.patterns().length, meth);
     }
 
@@ -1015,9 +1029,8 @@
             EExpr[] args = ce.args();
             EExpr[] moduli = (EExpr[])typedArray(nModulus, EExpr.class);
             if (ce.verb().equals("pow")
-                && args.length == 1
-                && moduli.length == 1)
-            {
+              && args.length == 1
+              && moduli.length == 1) {
                 EExpr base = ce.recipient();
                 EExpr exp = args[0];
                 return call(base, "modPow", list(exp, moduli[0]));
@@ -1062,8 +1075,8 @@
      *
      */
     /*package*/ EScript eScript(Object optMethods, Object optMatcher) {
-        return new EScript((EMethodNode[]) typedArray(optMethods, 
-                                                 EMethodNode.class),
+        return new EScript((EMethodNode[])typedArray(optMethods,
+                                                     EMethodNode.class),
                            (Matcher)optMatcher);
     }
 
@@ -1079,8 +1092,7 @@
      */
     /*package*/ EExpr methObject(Object audits,
                                  Object msgPatt,
-                                 Object bodyExpr)
-    {
+                                 Object bodyExpr) {
         return object(audits, methScript(msgPatt, bodyExpr));
     }
 
@@ -1113,8 +1125,7 @@
     /*package*/ EExpr object(String docComment,
                              Object optOName,
                              Object auditors,
-                             EScript eScript)
-    {
+                             EScript eScript) {
         if (null == optOName || optOName instanceof String) {
             //base case
             return new ObjectExpr(docComment,
@@ -1295,8 +1306,7 @@
      */
     /*package*/ EExpr send(Object recipientExpr,
                            Object verb,
-                           Object args)
-    {
+                           Object args) {
         return new SendExpr((EExpr)recipientExpr,
                             (String)verb,
                             exprs(args));
@@ -1315,16 +1325,16 @@
     /*package*/ EExpr sequence(Object x, Object y) {
         if (null == y) {
             throw new RuntimeException
-                ("internal: legacy of old return-value syntax");
+              ("internal: legacy of old return-value syntax");
         }
-        return sequence(new EExpr[] { (EExpr)x, (EExpr)y });
+        return sequence(new EExpr[]{ (EExpr)x, (EExpr)y });
     }
 
     /**
      *
      */
     /*package*/ EExpr sequence(Object x, Object y, Object z) {
-        return sequence(new EExpr[] { (EExpr)x, (EExpr)y, (EExpr)z });
+        return sequence(new EExpr[]{ (EExpr)x, (EExpr)y, (EExpr)z });
     }
 
     /**
@@ -1376,8 +1386,7 @@
      */
     private EExpr matchExpr(Matcher[] matchers,
                             String varName,
-                            EExpr optOtherwise)
-    {
+                            EExpr optOtherwise) {
         NounExpr specimen = new NounExpr(varName);
         EExpr result;
 
@@ -1390,7 +1399,7 @@
         } else {
             result = optOtherwise;
         }
-        for (int i = matchers.length -1; i >= 0; i--) {
+        for (int i = matchers.length - 1; i >= 0; i--) {
             result = ifx(matchBind(specimen, matchers[i].pattern()),
                          matchers[i].body(),
                          result);
@@ -1420,8 +1429,7 @@
      */
     /*package*/ EExpr tryx(Object eExpr,
                            Object catchers,
-                           Object optFinally)
-    {
+                           Object optFinally) {
         Matcher optCatcher = optMatcher(catchers);
         if (null == optCatcher) {
             if (null == optFinally) {
@@ -1561,8 +1569,7 @@
                            EExpr resultGuard,
                            EExpr body1,
                            Object catchers,
-                           Object optFinally)
-    {
+                           Object optFinally) {
         String resolution = newTemp("resolution");
         EExpr resExpr = noun(resolution);
         Pattern resPatt = finalPattern(resolution);
@@ -1571,7 +1578,7 @@
                          call(THROW,
                               "run",
                               list(call(REF, "optProblem", list(resExpr)))));
-        if (! (patt1 instanceof IgnorePattern)) {
+        if (!(patt1 instanceof IgnorePattern)) {
             body1 = sequence(define(patt1, resExpr),
                              body1);
         }
@@ -1600,7 +1607,7 @@
      * exactly 1, the we use the above base case.  Otherwise we expand to
      * <pre>
      * when (promiseAllFulfilled([eExprs,...]) ->
-             auds([patts,...]) :resultGuard {
+     auds([patts,...]) :resultGuard {
      *     body1
      * } catch patt2 {
      *     body2
@@ -1615,15 +1622,14 @@
                            EExpr resultGuard,
                            EExpr body1,
                            Object catchers,
-                           Object optFinally)
-    {
+                           Object optFinally) {
         int len = eExprs.length;
         if (len <= 0) {
             throw new RuntimeException("must list at least one expression");
         }
         if (len != patts.length) {
             throw new RuntimeException
-                ("must have same number of expressions and patterns");
+              ("must have same number of expressions and patterns");
         }
 
         EExpr eExpr;
@@ -1654,8 +1660,7 @@
     /*package*/ EExpr when(Object headList,
                            Object bodyExpr,
                            Object catchers,
-                           Object optFinally)
-    {
+                           Object optFinally) {
         EExpr[] eExprs = null;
         Object[] auds = null;
         Pattern[] patts = null;
@@ -1664,10 +1669,10 @@
         EList heads = (EList)headList;
         if (heads.size() == 4) {
             //the normal syntax
-            eExprs =  (EExpr[])typedArray(heads.get(0), EExpr.class);
-            auds =              (Object[])heads.get(1);
+            eExprs = (EExpr[])typedArray(heads.get(0), EExpr.class);
+            auds = (Object[])heads.get(1);
             patts = (Pattern[])typedArray(heads.get(2), Pattern.class);
-            resultGuard =          (EExpr)heads.get(3);
+            resultGuard = (EExpr)heads.get(3);
 
         } else if (heads.size() == 3) {
             reserved("alternate when syntax");
@@ -1722,8 +1727,7 @@
     /*package*/ EExpr oType(String docComment,
                             Object optOName,
                             Object auditors,
-                            Object mTypes)
-    {
+                            Object mTypes) {
         if (null == optOName) {
             return oType(docComment,
                          NULL,



1.64      +425 -343  e/src/jsrc/org/erights/e/elang/syntax/ELexer.java

Index: ELexer.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elang/syntax/ELexer.java,v
retrieving revision 1.63
retrieving revision 1.64
diff -u -r1.63 -r1.64
--- ELexer.java	2001/11/06 06:27:32	1.63
+++ ELexer.java	2001/11/10 19:40:42	1.64
@@ -106,7 +106,7 @@
      *
      */
     public ELexer(LineFeeder input, boolean partialFlag, boolean noTabsFlag)
-    throws IOException {
+      throws IOException {
 
         myInput = input;
         myPos = -1;
@@ -133,7 +133,7 @@
     static public ELexer make(Twine sourceCode,
                               boolean quasiFlag,
                               boolean noTabsFlag)
-    throws IOException {
+      throws IOException {
         LineFeeder lineFeeder = new TwineFeeder(sourceCode);
         if (quasiFlag) {
             lineFeeder = new QuasiFeeder(lineFeeder);
@@ -280,10 +280,10 @@
     /*package*/ void syntaxError(String msg) throws SyntaxException {
         int start = myOptStartPos;
         if (-1 == start) {
-            start = myPos -1;
+            start = myPos - 1;
         }
-        start = Math.max(Math.min(start, myPos -1), 0);
-        int bound = Math.max(myPos, start +1);
+        start = Math.max(Math.min(start, myPos - 1), 0);
+        int bound = Math.max(myPos, start + 1);
         SyntaxException sex = new SyntaxException(msg,
                                                   myLTwine,
                                                   start,
@@ -296,7 +296,7 @@
      * nest defaults to -1, meaning "unknown"
      */
     /*package*/ void needMore(String msg)
-    throws NeedMoreException, SyntaxException {
+      throws NeedMoreException, SyntaxException {
         if (myPartialFlag) {
 
             //This is irritatingly redundant with nextLine().
@@ -347,9 +347,9 @@
                 if (myChar == '\t') {
                     if (myNoTabsFlag) {
                         syntaxError
-                            ("The optional e.enable.notabs feature" +
-                             " in eprops.txt is currently on,\n" +
-                             "so tabs are not considered valid whitespace");
+                          ("The optional e.enable.notabs feature" +
+                           " in eprops.txt is currently on,\n" +
+                           "so tabs are not considered valid whitespace");
                     }
                     //else, we should warn, but XXX we don't yet have a
                     //warning mechanism.
@@ -376,7 +376,7 @@
      */
     private boolean isWhite(int start, int bound) {
         for (int i = start; i < bound; i++) {
-            if (! Character.isWhitespace(myLData[i])) {
+            if (!Character.isWhitespace(myLData[i])) {
                 return false;
             }
         }
@@ -400,332 +400,393 @@
         skipWhiteSpace();
         startToken();
 
-        switch(myChar) {
+        switch (myChar) {
             case ';':
             case ',':
             case '~':
-            case '?': {
-                char c = (char)myChar;
-                nextChar();
-                return new AstroToken(c, endToken());
-            } case EOFCHAR: {
-                return new AstroToken(EParser.EOFTOK, Twine.fromString(""));
-            } case '\n': {
-                myDelayedNextChar = true;
-                return new AstroToken(EParser.EOL, endToken());
-            } case '(': {
-                return openBracket(')');
-            } case ')': {
-                return closeBracket();
-            } case '{': {
-                return openBracket('}');
-            } case '}': {
-                return closeBracket();
-            } case '[': {
-                return openBracket(']');
-            } case ']': {
-                return closeBracket();
-            } case '$': {
-                nextChar();
-                if (myChar == '{') {
-                    //A '${' both closes a '$' and opens a '}'
-                    nextChar();
-                    Twine openner = endToken();
-                    myIndenter.pop('$', openner);
-                    return openBracket(EParser.DollarOpen, openner, '}');
-                } else if (myChar != EOFCHAR &&
-                           isIdentifierStart((char)myChar)) {
-                    //A '$<ident>' closes a '$'
-                    do {
-                        nextChar();
-                    } while (myChar != EOFCHAR &&
-                             isIdentifierPart((char)myChar));
-                    Twine name = endToken();
-                    String key = name.bare().substring(1);
-                    int tt = EParser.optKeywordType(key);
-                    if (tt != -1) {
-                        syntaxError(key + " is a keyword");
-                    }
-                    myIndenter.pop('$', name);
-                    return new AstroToken(EParser.DollarIdent, name, key);
+            case '?':
+                {
+                    char c = (char)myChar;
+                    nextChar();
+                    return new AstroToken(c, endToken());
+                }
+            case EOFCHAR:
+                {
+                    return new AstroToken(EParser.EOFTOK, Twine.fromString(""));
+                }
+            case '\n':
+                {
+                    myDelayedNextChar = true;
+                    return new AstroToken(EParser.EOL, endToken());
                 }
-                return new AstroToken('$', endToken());
-            } case '@': {
-                nextChar();
-                if (myChar == '{') {
-                    //A '@{' both closes a '@' and opens a '}'
+            case '(':
+                {
+                    return openBracket(')');
+                }
+            case ')':
+                {
+                    return closeBracket();
+                }
+            case '{':
+                {
+                    return openBracket('}');
+                }
+            case '}':
+                {
+                    return closeBracket();
+                }
+            case '[':
+                {
+                    return openBracket(']');
+                }
+            case ']':
+                {
+                    return closeBracket();
+                }
+            case '$':
+                {
                     nextChar();
-                    Twine openner = endToken();
-                    myIndenter.pop('@', openner);
-                    return openBracket(EParser.AtOpen, openner, '}');
-                } else if (myChar == '_' &&
-                           ! isIdentifierPart(peekChar())) {
-                    //A '@_' closes a '@'
-                    nextChar();
-                    Twine name = endToken();
-                    myIndenter.pop('@', name);
-                    return new AstroToken(EParser.AtIdent, name, "_");
-                } else if (myChar != EOFCHAR &&
-                           isIdentifierStart((char)myChar)) {
-                    //A '@<ident>' closes a '@'
-                    do {
-                        nextChar();
-                    } while (myChar != EOFCHAR &&
-                             isIdentifierPart((char)myChar));
-                    Twine name = endToken();
-                    String key = name.bare().substring(1);
-                    int tt = EParser.optKeywordType(key);
-                    if (tt != -1) {
-                        syntaxError(key + " is a keyword");
+                    if (myChar == '{') {
+                        //A '${' both closes a '$' and opens a '}'
+                        nextChar();
+                        Twine openner = endToken();
+                        myIndenter.pop('$', openner);
+                        return openBracket(EParser.DollarOpen, openner, '}');
+                    } else if (myChar != EOFCHAR &&
+                      isIdentifierStart((char)myChar)) {
+                        //A '$<ident>' closes a '$'
+                        do {
+                            nextChar();
+                        } while (myChar != EOFCHAR &&
+                          isIdentifierPart((char)myChar));
+                        Twine name = endToken();
+                        String key = name.bare().substring(1);
+                        int tt = EParser.optKeywordType(key);
+                        if (tt != -1) {
+                            syntaxError(key + " is a keyword");
+                        }
+                        myIndenter.pop('$', name);
+                        return new AstroToken(EParser.DollarIdent, name, key);
                     }
-                    myIndenter.pop('@', name);
-                    return new AstroToken(EParser.AtIdent, name, key);
+                    return new AstroToken('$', endToken());
                 }
-                return new AstroToken('@', endToken());
-            } case '.': {
-                nextChar();
-                if (myChar == '.') {
+            case '@':
+                {
                     nextChar();
-                    if (myChar == '!') {
+                    if (myChar == '{') {
+                        //A '@{' both closes a '@' and opens a '}'
                         nextChar();
-                        return new AstroToken(EParser.OpTill, endToken());
+                        Twine openner = endToken();
+                        myIndenter.pop('@', openner);
+                        return openBracket(EParser.AtOpen, openner, '}');
+                    } else if (myChar == '_' &&
+                      !isIdentifierPart(peekChar())) {
+                        //A '@_' closes a '@'
+                        nextChar();
+                        Twine name = endToken();
+                        myIndenter.pop('@', name);
+                        return new AstroToken(EParser.AtIdent, name, "_");
+                    } else if (myChar != EOFCHAR &&
+                      isIdentifierStart((char)myChar)) {
+                        //A '@<ident>' closes a '@'
+                        do {
+                            nextChar();
+                        } while (myChar != EOFCHAR &&
+                          isIdentifierPart((char)myChar));
+                        Twine name = endToken();
+                        String key = name.bare().substring(1);
+                        int tt = EParser.optKeywordType(key);
+                        if (tt != -1) {
+                            syntaxError(key + " is a keyword");
+                        }
+                        myIndenter.pop('@', name);
+                        return new AstroToken(EParser.AtIdent, name, key);
                     }
-                    return new AstroToken(EParser.OpThru, endToken());
+                    return new AstroToken('@', endToken());
                 }
-                return new AstroToken('.', endToken());
-            } case '^': {
-                nextChar();
-                if (myChar == '=') {
+            case '.':
+                {
                     nextChar();
-                    return new AstroToken(EParser.OpAssXor, endToken());
+                    if (myChar == '.') {
+                        nextChar();
+                        if (myChar == '!') {
+                            nextChar();
+                            return new AstroToken(EParser.OpTill, endToken());
+                        }
+                        return new AstroToken(EParser.OpThru, endToken());
+                    }
+                    return new AstroToken('.', endToken());
                 }
-                return new AstroToken('^', endToken());
-            } case '+': {
-                nextChar();
-                if (myChar == '=') {
-                    nextChar();
-                    return new AstroToken(EParser.OpAssAdd, endToken());
-                } else if (myChar == '+') {
+            case '^':
+                {
                     nextChar();
-                    syntaxError("token \"++\" is reserved");
-                    return null; //keep compiler happy
+                    if (myChar == '=') {
+                        nextChar();
+                        return new AstroToken(EParser.OpAssXor, endToken());
+                    }
+                    return new AstroToken('^', endToken());
                 }
-                return new AstroToken('+', endToken());
-            } case '-': {
-                nextChar();
-                if (myChar == '=') {
-                    nextChar();
-                    return new AstroToken(EParser.OpAssSub, endToken());
-                } else if (myChar == '>') {
-                    nextChar();
-                    return new AstroToken(EParser.OpWhen, endToken());
-                } else if (myChar == '-') {
+            case '+':
+                {
                     nextChar();
-                    syntaxError("token \"--\" is reserved");
-                    return null; //keep compiler happy
+                    if (myChar == '=') {
+                        nextChar();
+                        return new AstroToken(EParser.OpAssAdd, endToken());
+                    } else if (myChar == '+') {
+                        nextChar();
+                        syntaxError("token \"++\" is reserved");
+                        return null; //keep compiler happy
+                    }
+                    return new AstroToken('+', endToken());
                 }
-                return new AstroToken('-', endToken());
-            } case ':': {
-                nextChar();
-                if (myChar == '=') {
-                    nextChar();
-                    return new AstroToken(EParser.OpAss, endToken());
-                } else if (myChar == ':') {
+            case '-':
+                {
                     nextChar();
-                    return new AstroToken(EParser.Audit, endToken());
+                    if (myChar == '=') {
+                        nextChar();
+                        return new AstroToken(EParser.OpAssSub, endToken());
+                    } else if (myChar == '>') {
+                        nextChar();
+                        return new AstroToken(EParser.OpWhen, endToken());
+                    } else if (myChar == '-') {
+                        nextChar();
+                        syntaxError("token \"--\" is reserved");
+                        return null; //keep compiler happy
+                    }
+                    return new AstroToken('-', endToken());
                 }
-                return new AstroToken(':', endToken());
-            } case '<': {
-                nextChar();
-                if (myChar == '-') {
+            case ':':
+                {
                     nextChar();
-                    if (myChar == '*') {
+                    if (myChar == '=') {
                         nextChar();
-                        syntaxError("token \"<-*\" is reserved");
-                        return null; //keep compiler happy
+                        return new AstroToken(EParser.OpAss, endToken());
+                    } else if (myChar == ':') {
+                        nextChar();
+                        return new AstroToken(EParser.Audit, endToken());
                     }
-                    return new AstroToken(EParser.Send, endToken());
-                } else if (myChar == '=') {
+                    return new AstroToken(':', endToken());
+                }
+            case '<':
+                {
                     nextChar();
-                    if (myChar == '>') {
+                    if (myChar == '-') {
                         nextChar();
-                        return new AstroToken(EParser.OpABA, endToken());
+                        if (myChar == '*') {
+                            nextChar();
+                            syntaxError("token \"<-*\" is reserved");
+                            return null; //keep compiler happy
+                        }
+                        return new AstroToken(EParser.Send, endToken());
+                    } else if (myChar == '=') {
+                        nextChar();
+                        if (myChar == '>') {
+                            nextChar();
+                            return new AstroToken(EParser.OpABA, endToken());
+                        }
+                        return new AstroToken(EParser.OpLeq, endToken());
+                    } else if (myChar == '<') {
+                        nextChar();
+                        if (myChar == '=') {
+                            nextChar();
+                            return new AstroToken(EParser.OpAssAsl, endToken());
+                        }
+                        return new AstroToken(EParser.OpAsl, endToken());
+                    } else if (isIdentifierStart((char)myChar)) {
+                        AstroToken optResult = optUri();
+                        if (null != optResult) {
+                            return optResult;
+                        }
                     }
-                    return new AstroToken(EParser.OpLeq, endToken());
-                } else if (myChar == '<') {
+                    return new AstroToken('<', endToken());
+                }
+            case '>':
+                {
                     nextChar();
                     if (myChar == '=') {
+                        nextChar();
+                        return new AstroToken(EParser.OpGeq, endToken());
+                    } else if (myChar == '>') {
                         nextChar();
-                        return new AstroToken(EParser.OpAssAsl, endToken());
+                        if (myChar == '=') {
+                            nextChar();
+                            return new AstroToken(EParser.OpAssAsr, endToken());
+                        }
+                        return new AstroToken(EParser.OpAsr, endToken());
                     }
-                    return new AstroToken(EParser.OpAsl, endToken());
-                } else if (isIdentifierStart((char)myChar)) {
-                    AstroToken optResult = optUri();
-                    if (null != optResult) {
-                        return optResult;
+                    Twine closer = endToken();
+                    AstroToken result = new AstroToken('>', closer);
+                    if (myIndenter.getCloser() == '>') {
+                        myIndenter.pop('>', closer);
+                        return result;
+                    } else {
+                        return continuer(result);
                     }
                 }
-                return new AstroToken('<', endToken());
-            } case '>': {
-                nextChar();
-                if (myChar == '=') {
-                    nextChar();
-                    return new AstroToken(EParser.OpGeq, endToken());
-                } else if (myChar == '>') {
+            case '*':
+                {
                     nextChar();
-                    if (myChar == '=') {
+                    if (myChar == '*') {
+                        nextChar();
+                        if (myChar == '=') {
+                            nextChar();
+                            return new AstroToken(EParser.OpAssPow, endToken());
+                        }
+                        return new AstroToken(EParser.OpPow, endToken());
+                    } else if (myChar == '=') {
+                        nextChar();
+                        return new AstroToken(EParser.OpAssMul, endToken());
+                    } else if (myChar == '-' && peekChar('>')) {
                         nextChar();
-                        return new AstroToken(EParser.OpAssAsr, endToken());
+                        nextChar();
+                        syntaxError("token \"*->\" is reserved");
+                        return null; //keep compiler happy
+                    } else if (myChar == '/') {
+                        nextChar();
+                        syntaxError("'/*..*/' comments are reserved. " +
+                                    "Use '#' or '//' on each line instead");
                     }
-                    return new AstroToken(EParser.OpAsr, endToken());
-                }
-                Twine closer = endToken();
-                AstroToken result = new AstroToken('>', closer);
-                if (myIndenter.getCloser() == '>') {
-                    myIndenter.pop('>', closer);
-                    return result;
-                } else {
-                    return continuer(result);
+                    return new AstroToken('*', endToken());
                 }
-            } case '*': {
-                nextChar();
-                if (myChar == '*') {
+            case '/':
+                {
                     nextChar();
                     if (myChar == '=') {
+                        nextChar();
+                        return new AstroToken(EParser.OpAssAprxDiv, endToken());
+                    } else if (myChar == '/') {
+                        // Skip comment to end of line
+                        skipLine();
+                        return new AstroToken(EParser.EOL, endToken());
+                    } else if (myChar == '*') {
                         nextChar();
-                        return new AstroToken(EParser.OpAssPow, endToken());
+                        syntaxError("'/*..*/' comments are reserved. " +
+                                    "Use '#' or '//' on each line instead");
                     }
-                    return new AstroToken(EParser.OpPow, endToken());
-                } else if (myChar == '=') {
-                    nextChar();
-                    return new AstroToken(EParser.OpAssMul, endToken());
-                } else if (myChar == '-' && peekChar('>')) {
-                    nextChar();
-                    nextChar();
-                    syntaxError("token \"*->\" is reserved");
-                    return null; //keep compiler happy
-                } else if (myChar == '/') {
-                    nextChar();
-                    syntaxError("'/*..*/' comments are reserved. " +
-                                "Use '#' or '//' on each line instead");
+                    return new AstroToken('/', endToken());
                 }
-                return new AstroToken('*', endToken());
-            } case '/': {
-                nextChar();
-                if (myChar == '=') {
-                    nextChar();
-                    return new AstroToken(EParser.OpAssAprxDiv, endToken());
-                } else if (myChar == '/') {
-                    // Skip comment to end of line
+            case '#':
+                {
+                    // Skip comment to end of line (as in "//" case above).
                     skipLine();
                     return new AstroToken(EParser.EOL, endToken());
-                } else if (myChar == '*') {
-                    nextChar();
-                    syntaxError("'/*..*/' comments are reserved. " +
-                                "Use '#' or '//' on each line instead");
                 }
-                return new AstroToken('/', endToken());
-            } case '#': {
-                // Skip comment to end of line (as in "//" case above).
-                skipLine();
-                return new AstroToken(EParser.EOL, endToken());
-            } case '\\': {
-                nextChar();
-                if (myChar == 'u' || myChar == 'U') {
-                    syntaxError("\\u... not yet implemented");
+            case '\\':
+                {
+                    nextChar();
+                    if (myChar == 'u' || myChar == 'U') {
+                        syntaxError("\\u... not yet implemented");
+                        return null; //keep compiler happy
+                    }
+                    //an escaped newline is insensitive to trailing whitespace,
+                    //since that's invisible anyway.
+                    skipWhiteSpace();
+                    if (myChar == '\n') {
+                        myContinueFlag = true;
+                        skipLine();
+                        stopToken();
+                        AstroToken result = getNextToken();
+                        if (result.getType() == EParser.EOFTOK) {
+                            needMore("continued line");
+                            return null; //make compiler happy
+                        } else {
+                            return result;
+                        }
+                    }
+                    syntaxError("unrecognized escape");
                     return null; //keep compiler happy
                 }
-                //an escaped newline is insensitive to trailing whitespace,
-                //since that's invisible anyway.
-                skipWhiteSpace();
-                if (myChar == '\n') {
-                    myContinueFlag = true;
-                    skipLine();
-                    stopToken();
-                    AstroToken result = getNextToken();
-                    if (result.getType() == EParser.EOFTOK) {
-                        needMore("continued line");
-                        return null; //make compiler happy
-                    } else {
-                        return result;
+            case '%':
+                {
+                    nextChar();
+                    if (myChar == '%') {
+                        nextChar();
+                        if (myChar == '=') {
+                            // check for "%%="
+                            nextChar();
+                            return new AstroToken(EParser.OpAssMod, endToken());
+                        }
+                        return new AstroToken(EParser.OpMod, endToken());
+                    } else if (myChar == '=') {
+                        // check for "%="
+                        nextChar();
+                        return new AstroToken(EParser.OpAssRemdr, endToken());
                     }
+                    return new AstroToken('%', endToken());
                 }
-                syntaxError("unrecognized escape");
-                return null; //keep compiler happy
-            } case '%': {
-                nextChar();
-                if (myChar == '%') {
+            case '!':
+                {
                     nextChar();
-                    if (myChar == '=') { // check for "%%="
+                    if (myChar == '=') {
+                        nextChar();
+                        return new AstroToken(EParser.OpNSame, endToken());
+                    } else if (myChar == '~') {
                         nextChar();
-                        return new AstroToken(EParser.OpAssMod, endToken());
+                        return new AstroToken(EParser.MisMatch, endToken());
                     }
-                    return new AstroToken(EParser.OpMod, endToken());
-                } else if (myChar == '=') { // check for "%="
-                     nextChar();
-                     return new AstroToken(EParser.OpAssRemdr, endToken());
+                    return new AstroToken('!', endToken());
                 }
-                return new AstroToken('%', endToken());
-            } case '!': {
-                nextChar();
-                if (myChar == '=') {
+            case '=':
+                {
                     nextChar();
-                    return new AstroToken(EParser.OpNSame, endToken());
-                } else if (myChar == '~') {
-                    nextChar();
-                    return new AstroToken(EParser.MisMatch, endToken());
+                    if (myChar == '=') {
+                        nextChar();
+                        return new AstroToken(EParser.OpSame, endToken());
+                    } else if (myChar == '>') {
+                        nextChar();
+                        return new AstroToken(EParser.MapsTo, endToken());
+                    } else if (myChar == '~') {
+                        nextChar();
+                        return new AstroToken(EParser.MatchBind, endToken());
+                    }
+                    syntaxError("use ':=' for assignment, or '==' for equality");
+                    return null; //keep compiler happy
                 }
-                return new AstroToken('!', endToken());
-            } case '=': {
-                nextChar();
-                if (myChar == '=') {
-                    nextChar();
-                    return new AstroToken(EParser.OpSame, endToken());
-                } else if (myChar == '>') {
-                    nextChar();
-                    return new AstroToken(EParser.MapsTo, endToken());
-                } else if (myChar == '~') {
+            case '&':
+                {
                     nextChar();
-                    return new AstroToken(EParser.MatchBind, endToken());
+                    if (myChar == '&') {
+                        nextChar();
+                        return new AstroToken(EParser.OpLAnd, endToken());
+                    } else if (myChar == '=') {
+                        nextChar();
+                        return new AstroToken(EParser.OpAssAnd, endToken());
+                    } else if (myChar == '!') {
+                        nextChar();
+                        return new AstroToken(EParser.OpButNot, endToken());
+                    }
+                    return new AstroToken('&', endToken());
                 }
-                syntaxError("use ':=' for assignment, or '==' for equality");
-                return null; //keep compiler happy
-            } case '&': {
-                nextChar();
-                if (myChar == '&') {
-                    nextChar();
-                    return new AstroToken(EParser.OpLAnd, endToken());
-                } else if (myChar == '=') {
-                    nextChar();
-                    return new AstroToken(EParser.OpAssAnd, endToken());
-                } else if (myChar == '!') {
+            case '|':
+                {
                     nextChar();
-                    return new AstroToken(EParser.OpButNot, endToken());
+                    if (myChar == '|') {
+                        nextChar();
+                        return new AstroToken(EParser.OpLOr, endToken());
+                    } else if (myChar == '=') {
+                        nextChar();
+                        return new AstroToken(EParser.OpAssOr, endToken());
+                    }
+                    return new AstroToken('|', endToken());
                 }
-                return new AstroToken('&', endToken());
-            } case '|': {
-                nextChar();
-                if (myChar == '|') {
-                    nextChar();
-                    return new AstroToken(EParser.OpLOr, endToken());
-                } else if (myChar == '=') {
-                    nextChar();
-                    return new AstroToken(EParser.OpAssOr, endToken());
+            case '\'':
+                {
+                    return charLiteral();
+                }
+            case '"':
+                {
+                    return stringLiteral();
+                }
+            case '`':
+                {
+                    //eat the backquote here so quasiPart can also
+                    //be called when we're continuing after a hole, in which case
+                    //there is no leading backquote.
+                    nextChar();
+                    Twine openner = (Twine)myLTwine.run(myOptStartPos, myPos);
+                    myIndenter.push(openner, '`', 0);
+                    return quasiPart();
                 }
-                return new AstroToken('|', endToken());
-            } case '\'': {
-                return charLiteral();
-            } case '"': {
-                return stringLiteral();
-            } case '`': {
-                //eat the backquote here so quasiPart can also
-                //be called when we're continuing after a hole, in which case
-                //there is no leading backquote.
-                nextChar();
-                Twine openner = (Twine)myLTwine.run(myOptStartPos, myPos);
-                myIndenter.push(openner, '`', 0);
-                return quasiPart();
-            }
             case '0':
             case '1':
             case '2':
@@ -735,33 +796,38 @@
             case '6':
             case '7':
             case '8':
-            case '9': {
-                return numberLiteral();
+            case '9':
+                {
+                    return numberLiteral();
 
-            } case '_': {
-                if (isIdentifierPart(peekChar())) {
-                    return identifier();
                 }
-                nextChar();
-                if (myChar == '/') {
+            case '_':
+                {
+                    if (isIdentifierPart(peekChar())) {
+                        return identifier();
+                    }
                     nextChar();
-                    if (myChar == '=') {
+                    if (myChar == '/') {
                         nextChar();
-                        return new AstroToken(EParser.OpAssFlrDiv, endToken());
+                        if (myChar == '=') {
+                            nextChar();
+                            return new AstroToken(EParser.OpAssFlrDiv, endToken());
+                        }
+                        return new AstroToken(EParser.OpFlrDiv, endToken());
                     }
-                    return new AstroToken(EParser.OpFlrDiv, endToken());
-                }
-                return new AstroToken(EParser._, endToken());
+                    return new AstroToken(EParser._, endToken());
 
-            } default: {
-                if (isIdentifierStart((char)myChar)) {
-                    return identifier();
-                } else {
-                    syntaxError("unrecognized character: '" + (char)myChar +
-                                "' code: " + (int)myChar);
-                    return null; //keep compiler happy
                 }
-            }
+            default:
+                {
+                    if (isIdentifierStart((char)myChar)) {
+                        return identifier();
+                    } else {
+                        syntaxError("unrecognized character: '" + (char)myChar +
+                                    "' code: " + (int)myChar);
+                        return null; //keep compiler happy
+                    }
+                }
         }
     }
 
@@ -779,7 +845,7 @@
      *
      */
     private AstroToken openBracket(int tokenType, Twine openner, char closer)
-    throws IOException {
+      throws IOException {
         if (isWhite(myPos, myLData.length)) {
             myIndenter.nest(openner, closer);
         } else {
@@ -808,36 +874,48 @@
     private char charConstant() throws IOException, SyntaxException {
         if (myChar == '\\') {
             nextChar();
-            switch(myChar) {
-                case 'b': return '\b';
-                case 't': return '\t';
-                case 'n': return '\n';
-                case 'f': return '\f';
-                case 'r': return '\r';
-                case '"': return '"';
-                case '\'': return '\'';
-                case '\\': return '\\';
-                case '\n': {
-                    //XXX need to move into stringLiteral only
-                    //XXX bug: must be accepted at end of string
-                    nextChar();
-                    return charConstant();
-                }
-                case EOFCHAR: {
-                    syntaxError("End of file in middle of literal");
-                }
-                case 'u': {
-                    syntaxError
-                      ("XXX escaped uchar codes not yet implemented");
-                }
-                default: {
-                    if (Character.isDigit((char)myChar)) {
+            switch (myChar) {
+                case 'b':
+                    return '\b';
+                case 't':
+                    return '\t';
+                case 'n':
+                    return '\n';
+                case 'f':
+                    return '\f';
+                case 'r':
+                    return '\r';
+                case '"':
+                    return '"';
+                case '\'':
+                    return '\'';
+                case '\\':
+                    return '\\';
+                case '\n':
+                    {
+                        //XXX need to move into stringLiteral only
+                        //XXX bug: must be accepted at end of string
+                        nextChar();
+                        return charConstant();
+                    }
+                case EOFCHAR:
+                    {
+                        syntaxError("End of file in middle of literal");
+                    }
+                case 'u':
+                    {
                         syntaxError
-                          ("XXX escaped char codes not yet implemented");
-                    } else {
-                        syntaxError("Unrecognized escaped character");
+                          ("XXX escaped uchar codes not yet implemented");
                     }
-                }
+                default:
+                    {
+                        if (Character.isDigit((char)myChar)) {
+                            syntaxError
+                              ("XXX escaped char codes not yet implemented");
+                        } else {
+                            syntaxError("Unrecognized escaped character");
+                        }
+                    }
             }
         } else if (myChar == EOFCHAR) {
             syntaxError("End of file in middle of literal");
@@ -878,7 +956,7 @@
                 //part of a '==', '=>', or '=~'.
                 nextChar();
                 Twine source = endToken();
-                String name = source.bare().substring(0, source.size() -1);
+                String name = source.bare().substring(0, source.size() - 1);
                 int tt = EParser.optKeywordType(name);
                 if (tt != -1) {
                     syntaxError(name + " is a keyword");
@@ -950,7 +1028,7 @@
      *
      */
     private AstroToken numberLiteral()
-    throws IOException, SyntaxException {
+      throws IOException, SyntaxException {
         // Now handles floating point numbers as well as integers
         boolean floating = false;
         int radix = 10;
@@ -963,15 +1041,18 @@
             }
         }
         if (radix == 16) {
-            while (eatDigit(16)) {}
+            while (eatDigit(16)) {
+            }
         } else {
             //even if radix == 8, we may instead have a floating point literal
-            while (eatDigit(10)) {}
+            while (eatDigit(10)) {
+            }
             // If we have a decimal point go for the fractional part
-            if (myChar == '.' && ! peekChar('.')) {
+            if (myChar == '.' && !peekChar('.')) {
                 nextChar();
                 floating = true;
-                while (eatDigit(10)) {}
+                while (eatDigit(10)) {
+                }
             }
 
             if ((myChar == 'E') || (myChar == 'e')) {
@@ -979,8 +1060,9 @@
                 floating = true;
                 if (myChar == '-') {
                     nextChar();
+                }
+                while (eatDigit(10)) {
                 }
-                while (eatDigit(10)) {}
             }
         }
         Twine tok = endToken();
@@ -1007,10 +1089,10 @@
         if (myChar == EOFCHAR || myChar == '\n') {
             throw new Error("internal: can't peek here");
         }
-        int last = myLData.length -1;
+        int last = myLData.length - 1;
 
         if (myPos < last) {
-            return myLData[myPos +1];
+            return myLData[myPos + 1];
         } else {
             throw new Error("internal: (XXX bug) peek past end");
         }
@@ -1023,10 +1105,10 @@
         if (myChar == EOFCHAR || myChar == '\n') {
             throw new Error("internal: can't peek here");
         }
-        int last = myLData.length -1;
+        int last = myLData.length - 1;
 
         if (myPos < last) {
-            return c == myLData[myPos +1];
+            return c == myLData[myPos + 1];
         } else {
             return false;
         }
@@ -1082,7 +1164,7 @@
 
             } else if (myChar == '$' && peekChar('\\')) {
                 //See
-    //https://bugs.sieve.net/bugs/?func=detailbug&bug_id=125408&group_id=16380
+                //https://bugs.sieve.net/bugs/?func=detailbug&bug_id=125408&group_id=16380
                 nextChar();
                 buf.append(charConstant());
                 nextChar();
@@ -1104,7 +1186,7 @@
      */
     private void skipLine() throws IOException {
         if (null != myLTwine) {
-            myPos = myLData.length -1;
+            myPos = myLData.length - 1;
             myChar = myLData[myPos];
         }
         myDelayedNextChar = true;
@@ -1197,7 +1279,7 @@
         //it is a colon.  Commit.
         myPos = pos;
         nextChar();
-        if (! URI.isURICStart((char)myChar)) {
+        if (!URI.isURICStart((char)myChar)) {
             if (Character.isWhitespace((char)myChar)) {
                 Twine openner = endToken();
                 //Indent the next line to right after the open, even if
@@ -1225,7 +1307,7 @@
      * to stdout.
      */
     static public void main(String[] args)
-    throws IOException, SyntaxException {
+      throws IOException, SyntaxException {
 
         TextWriter stdout = new TextWriter(PrintStreamWriter.out(), true);
         String url;
@@ -1238,7 +1320,7 @@
             ins = new BufferedReader(new FileReader(args[0]));
         } else {
             throw new RuntimeException
-                ("usage: java org.erights.e.elang.syntax.ELexer file");
+              ("usage: java org.erights.e.elang.syntax.ELexer file");
         }
         LineFeeder lr = new FileFeeder(url, ins, stdout);
         ELexer lex = new ELexer(lr, false, false);



1.100     +3200 -2536e/src/jsrc/org/erights/e/elang/syntax/EParser.java

Index: EParser.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elang/syntax/EParser.java,v
retrieving revision 1.99
retrieving revision 1.100
diff -u -r1.99 -r1.100
--- EParser.java	2001/11/06 06:27:32	1.99
+++ EParser.java	2001/11/10 19:40:42	1.100
@@ -12,13 +12,8 @@
 //#line 30 "e.y"
 package org.erights.e.elang.syntax;
 
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.ObjectInput;
-import java.io.ObjectInputStream;
 import org.erights.build.EYaccFixer;
 import org.erights.e.develop.exception.ThrowableSugar;
-import org.erights.e.elang.evm.EExpr;
 import org.erights.e.elang.evm.ENode;
 import org.erights.e.elang.interp.Interp;
 import org.erights.e.elib.base.Ejector;
@@ -29,6 +24,12 @@
 import org.erights.e.elib.tables.IntTable;
 import org.erights.e.elib.tables.Twine;
 import org.quasiliteral.astro.AstroToken;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.ObjectInput;
+import java.io.ObjectInputStream;
+
 //#line 30 "EParser.java"
 
 
@@ -39,2894 +40,3557 @@
 // does : encapsulates yacc() parser functionality in a Java
 //        class for quick code development
 //#####################################################################
-public class EParser extends EBuilder
-{
+public class EParser extends EBuilder {
 
-boolean yydebug;        //do I want debug output?
-int yynerrs;            //number of errors so far
-int yyerrflag;          //was there an error?
-int yychar;             //the current working character
+    boolean yydebug;        //do I want debug output?
 
+    int yynerrs;            //number of errors so far
+
+    int yyerrflag;          //was there an error?
+
+    int yychar;             //the current working character
+
 //########## MESSAGES ##########
 //###############################################################
 // method: debug
 //###############################################################
-void debug(String msg)
-{
-  if (yydebug)
-    System.out.println(msg);
-}
+    void debug(String msg) {
+        if (yydebug)
+            System.out.println(msg);
+    }
 
 //########## STATE STACK ##########
-final static int YYSTACKSIZE = 500;  //maximum stack size
-int statestk[],stateptr;             //state stack
+    final static int YYSTACKSIZE = 500;  //maximum stack size
+
+    int statestk[],stateptr;             //state stack
 //###############################################################
 // methods: state stack push,pop,drop,peek
 //###############################################################
-void state_push(int state)
-{
-  if (stateptr>=YYSTACKSIZE)         //overflowed?
-    return;
-  statestk[++stateptr]=state;
-}
-int state_pop()
-{
-  if (stateptr<0)                    //underflowed?
-    return -1;
-  return statestk[stateptr--];
-}
-void state_drop(int cnt)
-{
-int ptr;
-  ptr=stateptr-cnt;
-  if (ptr<0)
-    return;
-  stateptr = ptr;
-}
-int state_peek(int relative)
-{
-int ptr;
-  ptr=stateptr-relative;
-  if (ptr<0)
-    return -1;
-  return statestk[ptr];
-}
+    void state_push(int state) {
+        if (stateptr >= YYSTACKSIZE)         //overflowed?
+            return;
+        statestk[++stateptr] = state;
+    }
+
+    int state_pop() {
+        if (stateptr < 0)                    //underflowed?
+            return -1;
+        return statestk[stateptr--];
+    }
+
+    void state_drop(int cnt) {
+        int ptr;
+        ptr = stateptr - cnt;
+        if (ptr < 0)
+            return;
+        stateptr = ptr;
+    }
+
+    int state_peek(int relative) {
+        int ptr;
+        ptr = stateptr - relative;
+        if (ptr < 0)
+            return -1;
+        return statestk[ptr];
+    }
 //###############################################################
 // method: init_stacks : allocate and prepare stacks
 //###############################################################
-boolean init_stacks()
-{
-  statestk = new int[YYSTACKSIZE];
-  stateptr = -1;
-  val_init();
-  return true;
-}
+    boolean init_stacks() {
+        statestk = new int[YYSTACKSIZE];
+        stateptr = -1;
+        val_init();
+        return true;
+    }
 //###############################################################
 // method: dump_stacks : show n levels of the stacks
 //###############################################################
-void dump_stacks(int count)
-{
-int i;
-  System.out.println("=index==state====value=     s:"+stateptr+"  v:"+valptr);
-  for (i=0;i<count;i++)
-    System.out.println(" "+i+"    "+statestk[i]+"      "+valstk[i]);
-  System.out.println("======================");
-}
+    void dump_stacks(int count) {
+        int i;
+        System.out.println("=index==state====value=     s:" + stateptr + "  v:" + valptr);
+        for (i = 0; i < count; i++)
+            System.out.println(" " + i + "    " + statestk[i] + "      " + valstk[i]);
+        System.out.println("======================");
+    }
 
 
 //########## SEMANTIC VALUES ##########
 //## **user defined:Object
-String   yytext;//user variable to return contextual strings
-Object yyval; //used to return semantic vals from action routines
-Object yylval;//the 'lval' (result) I got from yylex()
-Object valstk[];
-int valptr;
+    String yytext;//user variable to return contextual strings
+
+    Object yyval; //used to return semantic vals from action routines
+
+    Object yylval;//the 'lval' (result) I got from yylex()
+
+    Object valstk[];
+
+    int valptr;
 //###############################################################
 // methods: value stack push,pop,drop,peek.
 //###############################################################
-void val_init()
-{
-  valstk=new Object[YYSTACKSIZE];
-  yyval=new Object();
-  yylval=new Object();
-  valptr=-1;
-}
-void val_push(Object val)
-{
-  if (valptr>=YYSTACKSIZE)
-    return;
-  valstk[++valptr]=val;
-}
-Object val_pop()
-{
-  if (valptr<0)
-    return null;
-  return valstk[valptr--];
-}
-void val_drop(int cnt)
-{
-int ptr;
-  ptr=valptr-cnt;
-  if (ptr<0)
-    return;
-  valptr = ptr;
-}
-Object val_peek(int relative)
-{
-int ptr;
-  ptr=valptr-relative;
-  if (ptr<0)
-    return null;
-  return valstk[ptr];
-}
+    void val_init() {
+        valstk = new Object[YYSTACKSIZE];
+        yyval = new Object();
+        yylval = new Object();
+        valptr = -1;
+    }
+
+    void val_push(Object val) {
+        if (valptr >= YYSTACKSIZE)
+            return;
+        valstk[++valptr] = val;
+    }
+
+    Object val_pop() {
+        if (valptr < 0)
+            return null;
+        return valstk[valptr--];
+    }
+
+    void val_drop(int cnt) {
+        int ptr;
+        ptr = valptr - cnt;
+        if (ptr < 0)
+            return;
+        valptr = ptr;
+    }
+
+    Object val_peek(int relative) {
+        int ptr;
+        ptr = valptr - relative;
+        if (ptr < 0)
+            return null;
+        return valstk[ptr];
+    }
 //#### end semantic value section ####
-public final static short LiteralInteger=257;
-public final static short LiteralFloat64=258;
-public final static short LiteralChar=259;
-public final static short LiteralString=260;
-public final static short LiteralTwine=261;
-public final static short Identifier=262;
-public final static short VerbAssign=263;
-public final static short QuasiOpen=264;
-public final static short QuasiClose=265;
-public final static short DollarIdent=266;
-public final static short AtIdent=267;
-public final static short DollarOpen=268;
-public final static short AtOpen=269;
-public final static short URI=270;
-public final static short URIStart=271;
-public final static short BodyStartWord=272;
-public final static short BodyNextWord=273;
-public final static short VTableStartWord=274;
-public final static short VTableNextWord=275;
-public final static short BIND=276;
-public final static short CATCH=277;
-public final static short CLASS=278;
-public final static short DEF=279;
-public final static short DELEGATE=280;
-public final static short ELSE=281;
-public final static short ESCAPE=282;
-public final static short FINALLY=283;
-public final static short FOR=284;
-public final static short IF=285;
-public final static short IN=286;
-public final static short MATCH=287;
-public final static short META=288;
-public final static short PRAGMA=289;
-public final static short SWITCH=290;
-public final static short THUNK=291;
-public final static short TO=292;
-public final static short TRY=293;
-public final static short VAR=294;
-public final static short WHEN=295;
-public final static short WHILE=296;
-public final static short _=297;
-public final static short DEFINE=298;
-public final static short ON=299;
-public final static short SELECT=300;
-public final static short TYPEDEF=301;
-public final static short ABSTRACT=302;
-public final static short AN=303;
-public final static short AS=304;
-public final static short ATTRIBUTE=305;
-public final static short BE=306;
-public final static short BEGIN=307;
-public final static short BEHALF=308;
-public final static short BELIEF=309;
-public final static short BELIEVE=310;
-public final static short BELIEVES=311;
-public final static short CASE=312;
-public final static short CONST=313;
-public final static short CONSTRUCTOR=314;
-public final static short CONTEXT=315;
-public final static short DECLARE=316;
-public final static short DEFAULT=317;
-public final static short DEFMACRO=318;
-public final static short DEPRECATED=319;
-public final static short DISPATCH=320;
-public final static short DO=321;
-public final static short ENCAPSULATE=322;
-public final static short ENCAPSULATED=323;
-public final static short ENCAPSULATES=324;
-public final static short END=325;
-public final static short ENSURE=326;
-public final static short ENUM=327;
-public final static short EVENTUAL=328;
-public final static short EVENTUALLY=329;
-public final static short EXPORT=330;
-public final static short EXTENDS=331;
-public final static short FACET=332;
-public final static short FORALL=333;
-public final static short FUNCTION=334;
-public final static short GIVEN=335;
-public final static short HIDDEN=336;
-public final static short HIDES=337;
-public final static short IMPLEMENTS=338;
-public final static short INTERFACE=339;
-public final static short IS=340;
-public final static short KNOW=341;
-public final static short KNOWS=342;
-public final static short LAMBDA=343;
-public final static short LET=344;
-public final static short METHOD=345;
-public final static short METHODS=346;
-public final static short MODULE=347;
-public final static short NAMESPACE=348;
-public final static short NATIVE=349;
-public final static short OBEYS=350;
-public final static short OCTET=351;
-public final static short ONEWAY=352;
-public final static short PACKAGE=353;
-public final static short PRIVATE=354;
-public final static short PROTECTED=355;
-public final static short PUBLIC=356;
-public final static short RAISES=357;
-public final static short RELIANCE=358;
-public final static short RELIANT=359;
-public final static short RELIES=360;
-public final static short RELY=361;
-public final static short REVEAL=362;
-public final static short SAKE=363;
-public final static short SIGNED=364;
-public final static short STATIC=365;
-public final static short STRUCT=366;
-public final static short SUCHTHAT=367;
-public final static short SUPPORTS=368;
-public final static short SUSPECT=369;
-public final static short SUSPECTS=370;
-public final static short SYNCHRONIZED=371;
-public final static short THIS=372;
-public final static short THROWS=373;
-public final static short TRANSIENT=374;
-public final static short TRUNCATABLE=375;
-public final static short UNSIGNED=376;
-public final static short UNUM=377;
-public final static short USES=378;
-public final static short USING=379;
-public final static short UTF8=380;
-public final static short UTF16=381;
-public final static short VALUETYPE=382;
-public final static short VIRTUAL=383;
-public final static short VOLATILE=384;
-public final static short WSTRING=385;
-public final static short EOL=386;
-public final static short OpLAnd=387;
-public final static short OpLOr=388;
-public final static short OpSame=389;
-public final static short OpNSame=390;
-public final static short OpButNot=391;
-public final static short OpLeq=392;
-public final static short OpABA=393;
-public final static short OpGeq=394;
-public final static short OpThru=395;
-public final static short OpTill=396;
-public final static short OpAsl=397;
-public final static short OpAsr=398;
-public final static short OpFlrDiv=399;
-public final static short OpMod=400;
-public final static short OpPow=401;
-public final static short OpAss=402;
-public final static short OpAssAdd=403;
-public final static short OpAssAnd=404;
-public final static short OpAssAprxDiv=405;
-public final static short OpAssFlrDiv=406;
-public final static short OpAssAsl=407;
-public final static short OpAssAsr=408;
-public final static short OpAssRemdr=409;
-public final static short OpAssMod=410;
-public final static short OpAssMul=411;
-public final static short OpAssOr=412;
-public final static short OpAssPow=413;
-public final static short OpAssSub=414;
-public final static short OpAssXor=415;
-public final static short Send=416;
-public final static short OpWhen=417;
-public final static short MapsTo=418;
-public final static short MatchBind=419;
-public final static short MisMatch=420;
-public final static short Audit=421;
-public final static short YYERRCODE=256;
-final static short yylhs[] = {                           -1,
-    0,    0,    0,    4,    4,    2,    6,    5,    5,    7,
-    7,    8,   10,   10,   11,   11,   11,   14,   14,   12,
-   12,   12,   12,   12,   12,   12,   12,   16,   16,   21,
-   21,   22,   22,   22,   22,   22,   22,   22,   22,   22,
-   24,   24,   23,   23,   23,   23,   23,   23,   25,   25,
-   25,   26,   26,   26,   28,   28,   27,   27,   27,   30,
-   30,   29,   29,   29,   29,   29,   29,   32,   32,   31,
-   31,   34,   34,   33,   33,   33,   33,   33,   35,   35,
-   35,   35,   35,   35,   35,   35,   35,   38,   38,   38,
-   38,   38,   38,   37,   37,   37,   36,   36,   36,   36,
-   36,   36,   36,   36,   36,   36,   36,   36,   36,   36,
-   36,   36,   36,   36,   36,   36,   36,   36,   36,   36,
-   36,   36,   36,   36,   36,   59,   59,   59,   59,   59,
-   59,   43,   46,   56,   56,   56,   54,   55,   57,   57,
-   69,   68,   68,   67,   67,   67,   44,   44,   44,   45,
-   45,   70,   70,   71,   71,   72,   72,   74,   74,   75,
-   76,   76,   64,   64,   77,   77,    3,    3,    3,   79,
-   79,   79,   79,   79,   80,   80,   81,   81,   82,   82,
-   83,   83,   84,   84,   85,   85,   78,   78,   78,   78,
-   78,   78,   78,   78,   78,   19,   19,   20,   20,   86,
-   86,   86,   86,   86,   86,   86,   88,   88,   88,   89,
-   89,   60,   60,   90,   90,   15,   15,   87,   87,   92,
-   92,   92,   92,   92,   93,   93,   93,   62,   62,   62,
-   63,   95,   96,   94,   94,   97,   65,   65,   98,   98,
-   99,    1,    1,    9,    9,  100,   73,   18,   18,   39,
-   39,   91,   91,   47,   47,  101,  101,   40,   13,   41,
-   41,   17,   17,   17,   17,   17,   17,   17,   17,   17,
-   17,   17,   17,   49,   49,   50,   61,   61,   61,  104,
-  104,  105,  105,  103,  103,   52,   52,   66,  106,   53,
-   53,   58,   58,  107,  107,  107,  107,  109,  109,  109,
-  109,  108,  108,  108,  111,  111,  112,  112,  113,  113,
-  110,  110,   42,   42,   48,   51,  102,  102,  102,  102,
-  102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
-  102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
-  102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
-  102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
-  102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
-  102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
-  102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
-  102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
-};
-final static short yylen[] = {                            2,
-    1,    1,    2,    1,    1,    3,    3,    1,    3,    1,
-    3,    1,    1,    2,    1,    3,    2,    1,    1,    1,
-    3,    3,    3,    3,    4,    3,    3,    1,    3,    1,
-    3,    1,    3,    3,    3,    3,    3,    3,    3,    3,
-    1,    1,    1,    3,    3,    3,    3,    3,    1,    3,
-    3,    1,    3,    3,    1,    1,    1,    3,    3,    1,
-    1,    1,    3,    3,    3,    3,    3,    1,    1,    1,
-    3,    1,    1,    1,    2,    2,    2,    2,    1,    1,
-    4,    4,    3,    3,    2,    3,    4,    2,    3,    3,
-    4,    2,    3,    1,    2,    3,    1,    1,    1,    1,
-    1,    1,    1,    3,    2,    1,    3,    3,    2,    4,
-    4,    5,    5,    1,    1,    1,    1,    3,    2,    2,
-    3,    2,    3,    2,    1,    2,    4,    3,    3,    4,
-    3,    1,    3,    4,    6,    7,    8,    5,    5,    6,
-    0,    6,    6,    0,    1,    1,    0,    1,    3,    1,
-    2,    2,    3,    1,    3,    1,    2,    1,    4,    2,
-    1,    4,    1,    1,    3,    2,    1,    3,    4,    1,
-    3,    5,    3,    5,    1,    2,    1,    2,    1,    2,
-    2,    3,    1,    1,    1,    3,    3,    1,    2,    1,
-    3,    1,    1,    3,    3,    4,    2,    4,    2,    1,
-    1,    2,    2,    3,    3,    1,    2,    2,    2,    1,
-    3,    1,    3,    1,    4,    2,    5,    1,    1,    4,
-    6,    4,    6,    4,    4,    5,    2,    4,    5,    2,
-    6,    4,    3,    0,    2,    3,    8,    6,    1,    3,
-    3,    0,    1,    1,    2,    0,    1,    3,    2,    1,
-    1,    1,    3,    1,    3,    3,    2,    1,    1,    1,
-    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-    1,    1,    1,    4,    6,    4,    5,    1,    1,    1,
-    3,    1,    3,    1,    3,    1,    1,    2,    4,    0,
-    3,    5,    3,    1,    2,    2,    4,    2,    4,    2,
-    4,    2,    5,    4,    2,    3,    1,    4,    2,    2,
-    0,    2,    1,    1,    0,    0,    1,    1,    1,    1,
-    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-};
-final static short yydefred[] = {                         0,
-  244,    0,    0,    0,    2,    0,  260,    0,    0,    0,
-  313,  314,    0,    0,  317,  318,  319,  320,  321,  322,
-  323,  324,  325,  326,  327,  328,  329,  330,  331,  332,
-  333,  334,  335,  336,  337,  338,  339,  340,  341,  342,
-  343,  344,  345,  346,  347,  348,  349,  350,  351,  352,
-  353,  354,  355,  356,  357,  358,  359,  360,  361,  362,
-  363,  364,  365,  366,  367,  368,  369,  370,  371,  372,
-  373,  374,  375,  376,  377,  378,  379,  380,  381,  382,
-  383,  384,  385,  386,  387,  388,  389,  390,  391,  392,
-  393,  394,  395,  396,  397,  398,  399,  400,    0,    0,
-    0,    0,    3,    0,  192,  193,    0,    0,    0,  177,
-    0,  170,  175,  261,   97,   98,   99,  100,  101,    0,
-    0,  103,    0,  315,  315,    0,    0,    4,    0,    0,
-    5,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    8,   12,    0,   15,  132,    0,    0,
-    0,    0,   30,    0,    0,    0,    0,    0,   62,    0,
-    0,   94,    0,   80,    0,  102,    0,  106,    0,  114,
-  115,  116,  117,  125,    0,    0,  245,    0,    0,    0,
-  259,    0,    0,    0,    0,    0,  176,  189,    0,  247,
-    0,    0,  156,    0,    0,    0,  161,    0,    0,    0,
-    0,    0,    0,  179,  178,    0,    0,    0,    0,    0,
-    0,    0,    0,  218,  219,    0,    0,    0,    0,  201,
-  200,    0,    0,  206,  315,    0,    0,    0,  315,    0,
-    0,  124,    0,   78,   77,   75,   76,    0,    0,    0,
-    0,    0,  250,    0,  254,  119,  120,  122,    0,    0,
-    0,    0,    0,    0,    0,    0,  207,    6,    0,    0,
-    0,    0,    0,  262,  263,  264,  265,  266,    0,  267,
-  268,  269,  270,  271,  272,  273,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,  258,
-    0,    0,    0,    0,    0,    0,  150,  105,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,  109,    0,
-    0,  126,  278,  279,    0,  194,  195,    0,    0,  191,
-  208,  209,  166,    0,    0,    0,  157,    0,    0,  160,
-    0,   10,  149,  187,    0,    0,  154,  185,    0,    0,
-  183,  181,  184,    0,  180,  168,  118,  121,  104,  146,
-  145,    0,    0,    0,    0,  202,  203,  129,    0,    0,
-  252,    0,  246,    0,    0,    0,  123,    0,    0,    0,
-    0,  257,    0,  107,  108,    0,    0,    0,    0,    0,
-    0,    0,    0,    9,    0,   16,    0,    0,   21,   23,
-    0,   18,   22,   19,   26,   27,   31,   33,   34,   42,
-   41,   38,   39,   40,   35,   36,   37,   45,   46,   47,
-   44,   48,    0,    0,   56,    0,   53,    0,   61,    0,
-   58,   59,   69,   68,   65,   67,   63,   64,   66,   73,
-   72,   71,    0,    0,    0,    0,    0,    0,    0,  249,
-    0,    0,    0,  152,    0,  151,    0,    0,    0,  164,
-    0,    0,  128,  246,    0,    0,    0,  131,    0,    0,
-  246,    0,    0,    0,  214,    0,  196,  198,  165,    0,
-    0,    0,    0,    7,    0,  133,  169,    0,    0,  182,
-    0,    0,  316,  204,  205,    0,    0,  236,  315,    0,
-  286,    0,  315,  246,    0,    0,    0,    0,    0,  302,
-  293,  256,    0,  255,  253,    0,    0,   25,    0,  216,
-    0,    0,   81,    0,  248,    0,  153,  110,    0,    0,
-  316,    0,  287,  111,  158,    0,    0,    0,  230,  130,
-  316,    0,  280,    0,  233,    0,  127,    0,  172,  159,
-  174,    0,  162,   11,  155,  186,  315,  139,    0,    0,
-    0,    0,  288,    0,  138,    0,    0,  239,    0,  284,
-    0,    0,    0,  305,    0,  307,    0,    0,    0,    0,
-  294,    0,    0,    0,  312,    0,  315,  315,  112,    0,
-  113,    0,    0,  235,  274,    0,    0,    0,    0,    0,
-  232,    0,    0,  315,  140,    0,    0,    0,    0,    0,
-    0,    0,  276,    0,    0,  310,  309,    0,  306,  304,
-  295,  298,  300,  292,  296,    0,    0,    0,    0,    0,
-  135,  228,    0,  316,    0,    0,    0,  281,    0,  277,
-  215,    0,    0,  231,    0,  291,  241,  238,  240,    0,
-  285,    0,    0,    0,    0,  303,  217,  316,  136,  229,
-  275,    0,    0,    0,    0,    0,    0,  283,  316,    0,
-  289,    0,  308,  297,  299,  301,  137,    0,  224,    0,
-    0,    0,  227,  220,  222,    0,    0,  237,  316,    0,
-  316,    0,  143,  142,  223,  225,  221,    0,  226,
-};
-final static short yydgoto[] = {                          3,
-  198,    5,  545,  186,  143,  381,  351,  144,    6,  352,
-  146,  147,  148,  413,  443,  149,  277,  312,  105,  106,
-  152,  153,  154,  422,  155,  156,  157,  437,  158,  441,
-  159,  445,  160,  452,  161,  162,  163,  164,  241,  390,
-  107,  165,  166,  167,  318,  168,  242,  169,  329,  387,
-  570,  509,  575,  170,  171,  172,  173,  232,  174,  175,
-  332,  479,  222,  469,  228,  510,  372,  568,  569,  319,
-  361,  192,  193,  194,  195,  196,  197,  110,  111,  112,
-  113,  205,  206,  362,  363,  223,  224,  176,  225,  486,
-  244,  608,  675,  693,  333,  334,  230,  577,  578,  511,
-  245,  114,  581,  554,  610,  573,  592,  391,  593,  520,
-  516,  585,  586,
-};
-final static short yysindex[] = {                      -310,
-    0,15951,    0,14168,    0, -280,    0, -127, -122,19458,
-    0,    0,19458,   87,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,16556,19458,
-12002, -229,    0,  104,    0,    0,    0,  163,  -95,    0,
-  142,    0,    0,    0,    0,    0,    0,    0,    0,  -44,
-    6,    0,14521,    0,    0,19458,19086,    0,19458,16806,
-    0,  163,19086,19458,16556,16556,16556, -306,   -9,    8,
- -229,15129, -229,    0,    0,  190,    0,    0,  735, -125,
- -109, -107,    0,  -24,   76,   66,   52,    2,    0,  -84,
-12592,    0,  265,    0,12252,    0,  -23,    0,  694,    0,
-    0,    0,    0,    0,  197,  -93,    0,  201,  216,  285,
-    0,  290,14521,19458,19458,19086,    0,    0,16680,    0,
-  -48,  260,    0,  -27,  284,  -26,    0,14168,  332,14521,
- -229,  -40,  456,    0,    0,   46,14521,  255,  257,   49,
-16075,16075,  285,    0,    0,  127,  131,19458,19458,    0,
-    0,  271,  -14,    0,    0,  290, -229,  271,    0,  -20,
-  289,    0,17870,    0,    0,    0,    0,19458,14168,   -5,
-  323,   17,    0,  373,    0,    0,    0,    0,  379,  164,
-  176,19458,19458,   87,   32,  104,    0,    0,12721,14168,
-  265,14521,14168,    0,    0,    0,    0,    0,14168,    0,
-    0,    0,    0,    0,    0,    0,14650,14168,14168,14521,
-14521,14521,15003,15951,15951,15003,15003,15003,14521,14521,
-14521,14521,14521,14521,14521,15003,14521,15003,15003,15003,
-15003,15003,15003,15003,15003,18588, -229,19458,  265,    0,
- -229,  147,18588,  147,  265, -152,    0,    0,   58,15951,
-12127,  163,  163,  271,  271,  163,17994, -229,    0, -229,
-17400,    0,    0,    0,19458,    0,    0,14521,14521,    0,
-    0,    0,    0,15951,  396, -229,    0,  325, -229,    0,
- -229,    0,    0,    0,  409,15951,    0,    0, -229,15951,
-    0,    0,    0,  456,    0,    0,    0,    0,    0,    0,
-    0,  271,  197,  327,  333,    0,    0,    0,19458,  419,
-    0,   40,    0,  431,19086, -229,    0, -229, -229,   61,
-   86,    0, -229,    0,    0, -306, -229,    0,  348,  350,
-  285,  290,14168,    0,15129,    0,  147, -107,    0,    0,
-  -12,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,  -96,  -96,    0,   52,    0,   52,    0,    2,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,  147,  265,  383,  265,  147,  437, -126,    0,
-  147,  265,  147,    0, -152,    0,  271,  -48,  193,    0,
-  271,  289,    0,    0,  271,15601,   89,    0,  271,14039,
-    0,  271,15951,  271,    0,  436,    0,    0,    0,16423,
-15951,16423,12127,    0,12721,    0,    0,  357,  358,    0,
-  210, -112,    0,    0,    0,  436,15601,    0,    0,    0,
-    0, -229,    0,    0,19210,  445, -184, -229,19458,    0,
-    0,    0,   -5,    0,    0,    0,    0,    0,  104,    0,
-  102,  147,    0,  147,    0,  147,    0,    0,14168,  206,
-    0,    0,    0,    0,    0,  451,15601,14521,    0,    0,
-    0, -229,    0,    0,    0,  271,    0, -229,    0,    0,
-    0,  -48,    0,    0,    0,    0,    0,    0,  220,  210,
-  455,  221,    0,  214,    0,   90,  179,    0,  463,    0,
-  381,  446,  446,    0,  -10,    0,  446, -229,18712,18712,
-    0,  390, -229,  477,    0, -229,    0,    0,    0, -103,
-    0,  462,  480,    0,    0,  397, -133, -229,    0,  400,
-    0,19458,16075,    0,    0,  462,15951,  271,15951,  462,
- -229,15951,    0,  242, -229,    0,    0, -229,    0,    0,
-    0,    0,    0,    0,    0, -213,  446,  213,  271,  -64,
-    0,    0,  462,    0,  163,18836,18836,    0, -229,    0,
-    0,  197,16075,    0,  271,    0,    0,    0,    0,  230,
-    0,19210, -229,18712,18712,    0,    0,    0,    0,    0,
-    0, -111,15601,  -30,  271,  114,  271,    0,    0,  271,
-    0,  462,    0,    0,    0,    0,    0,  163,    0,  489,
-14168,15601,    0,    0,    0,  210,  210,    0,    0,  462,
-    0,  497,    0,    0,    0,    0,    0,  462,    0,
-};
-final static short yyrindex[] = {                      9616,
-    0,   81,    0,  645,    0, 8526,    0,    0,    0,    0,
-    0,    0,    0, 8650,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,  821,    0,
-   20,13686,    0, 8916,    0,    0,  969,    0,    0,    0,
- 9219,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,  821,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,  821,  821,  821,13075,    0,    0,
-13686,   81,  540,    0,    0,   25,    0,    0,  779,    0,
-    0, 9416,    0, 9379, 8346, 7962, 7503, 7330,    0, 7291,
- 6907,    0, 5168,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,17524,17152,    0,    0,    0, 8951,
-    0, 8984,  821,    0,    0,    0,    0,    0,    0,    0,
-  -35,    0,    0,   30,    0,  449,    0,  821,    0,  821,
-13686,    0,    0,    0,    0,    0,  821,    0,    0,    0,
-  -88,  -86,11183,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,18340,    0,    0,11529,13686,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,  661,   29,
-    0,    0,    0,   33,    0,    0,    0,    0,    0,    0,
-    0,    0,    0, 9773,    0, 1135,    0,    0,  791,  391,
-    0,  821,  821,    0,    0,    0,    0,    0,  821,    0,
-    0,    0,    0,    0,    0,    0,  821,  821,  821,  821,
-  821,  821,  821,   81,   81,  821,  821,  821,  821,  821,
-  821,  821,  821,  821,  821,  821,  821,  821,  821,  821,
-  821,  821,  821,  821,  821,    0,13075,    0, 5589,    0,
-13204, 1522,    0, 2848, 5748,    0,    0,    0,    0,   81,
-   81,    0,    0,    0,    0,    0,    0,13557,    0,  -80,
-    0,    0,    0,    0,    0,    0,    0,  821,  821,    0,
-    0,    0,    0,   81, 9142,15477,    0, 9182,11654,    0,
-   -8,    0,    0,    0,    0,   81,    0,    0,13686,   81,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,  -94,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,  -60,    0,18960,  -37, -105,
-    0,    0,13686,    0,    0,13686,13686, 1681,    0,    0,
-10119,10243,  821,    0,   81,    0,  746, 9449,    0,    0,
-13686,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0, 8193, 8269,    0, 7809,    0, 7886,    0, 7367,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0, 3269, 6169,    0, 6328, 2102,    0,    0,    0,
- 3428, 6749, 3849,    0,    0,    0,    0,  261,    0,    0,
-    0,    0,    0,    0,    0,    5,  423,    0,    0,  821,
-    0,    0,   81,    0,    0,17276,    0,    0,    0,   81,
-   81,   81,   81,    0,  -18,    0,    0,    0,    0,    0,
-  276,    0,    0,    0,    0,18464,    5,    0,    0, 2261,
-    0,13686,    0,    0,  511,    0,  426,18960,    0,    0,
-    0,    0,    0,    0,    0,10589,10713,    0,11059,    0,
-    0, 4008,    0, 4429,    0, 4588,    0,    0,  821, 5009,
-    0, 2682,    0,    0,    0,    0,    5,  821,    0,    0,
-    0,  429,    0,  280,    0,    0,    0,19582,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,  276,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-  270,    7,    7,    0,  517,    0, -105,  429,    0,    0,
-    0,    0,  429,    0,    0,13686,    0,    0,    0,    0,
-    0,  423,    0,    0,    0,    0,    0,  -80,  -69,    0,
-    0,    0,  -86,    0,    0,  423,   81,    0,   81,  423,
-13686,   81,    0,    0,  -65,    0,    0,19334,    0,    0,
-    0,    0,    0,    0,    0,  440, -105,    0,    0,    0,
-    0,    0,  423,    0,    0,    0,    0,    0,  429,    0,
-    0,  -94,  -88,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,  429,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    5,  423,    0,  423,    0,    0,    0,    0,
-    0,  423,    0,    0,    0,    0,    0,    0,    0,    0,
-  821,    5,    0,    0,    0,  276,  276,    0,    0,  423,
-    0,    0,    0,    0,    0,    0,    0,  423,    0,
-};
-final static short yygindex[] = {                         0,
-    1,    0,  243,   37,    0,  -98,   91,  302, -137,   -1,
-    0, -247,   -2,    0,  903,    0,    0,  295,  159,  188,
-  307,  293,  -49,  143,   45,   67,  -71,    0,   57,  275,
-  233,  457,  272,    0,    0,  -46,    0,    0,  -67, -146,
-  580,   48, -231,   19,    0,  -70,    0,  510,  322,   98,
-   51,  106,   36,    0,    0,  -17,    0,    0,  310,    0,
- -331,  251,    0,    0,    0,  110, -207, -498,    0,    0,
- -269, -343,  -83,  -34,    0,    0, -257,  407, -301,    0,
-    0,    0,    0,  234,    0, -118,    0,    0,  -76,  218,
- -225,    0,  -62, -414, -488,   -4,    0,    0,  -21, -190,
-  211,    0,   59,    0,    0,    0,    0, -512,    0, -500,
-   88,    0,  -50,
-};
-final static int YYTABLESIZE=19967;
+    public final static short LiteralInteger = 257;
+
+    public final static short LiteralFloat64 = 258;
+
+    public final static short LiteralChar = 259;
+
+    public final static short LiteralString = 260;
+
+    public final static short LiteralTwine = 261;
+
+    public final static short Identifier = 262;
+
+    public final static short VerbAssign = 263;
+
+    public final static short QuasiOpen = 264;
+
+    public final static short QuasiClose = 265;
+
+    public final static short DollarIdent = 266;
+
+    public final static short AtIdent = 267;
+
+    public final static short DollarOpen = 268;
+
+    public final static short AtOpen = 269;
+
+    public final static short URI = 270;
+
+    public final static short URIStart = 271;
+
+    public final static short BodyStartWord = 272;
+
+    public final static short BodyNextWord = 273;
+
+    public final static short VTableStartWord = 274;
+
+    public final static short VTableNextWord = 275;
+
+    public final static short BIND = 276;
+
+    public final static short CATCH = 277;
+
+    public final static short CLASS = 278;
+
+    public final static short DEF = 279;
+
+    public final static short DELEGATE = 280;
+
+    public final static short ELSE = 281;
+
+    public final static short ESCAPE = 282;
+
+    public final static short FINALLY = 283;
+
+    public final static short FOR = 284;
+
+    public final static short IF = 285;
+
+    public final static short IN = 286;
+
+    public final static short MATCH = 287;
+
+    public final static short META = 288;
+
+    public final static short PRAGMA = 289;
+
+    public final static short SWITCH = 290;
+
+    public final static short THUNK = 291;
+
+    public final static short TO = 292;
+
+    public final static short TRY = 293;
+
+    public final static short VAR = 294;
+
+    public final static short WHEN = 295;
+
+    public final static short WHILE = 296;
+
+    public final static short _ = 297;
+
+    public final static short DEFINE = 298;
+
+    public final static short ON = 299;
+
+    public final static short SELECT = 300;
+
+    public final static short TYPEDEF = 301;
+
+    public final static short ABSTRACT = 302;
+
+    public final static short AN = 303;
+
+    public final static short AS = 304;
+
+    public final static short ATTRIBUTE = 305;
+
+    public final static short BE = 306;
+
+    public final static short BEGIN = 307;
+
+    public final static short BEHALF = 308;
+
+    public final static short BELIEF = 309;
+
+    public final static short BELIEVE = 310;
+
+    public final static short BELIEVES = 311;
+
+    public final static short CASE = 312;
+
+    public final static short CONST = 313;
+
+    public final static short CONSTRUCTOR = 314;
+
+    public final static short CONTEXT = 315;
+
+    public final static short DECLARE = 316;
+
+    public final static short DEFAULT = 317;
+
+    public final static short DEFMACRO = 318;
+
+    public final static short DEPRECATED = 319;
+
+    public final static short DISPATCH = 320;
+
+    public final static short DO = 321;
+
+    public final static short ENCAPSULATE = 322;
+
+    public final static short ENCAPSULATED = 323;
+
+    public final static short ENCAPSULATES = 324;
+
+    public final static short END = 325;
+
+    public final static short ENSURE = 326;
+
+    public final static short ENUM = 327;
+
+    public final static short EVENTUAL = 328;
+
+    public final static short EVENTUALLY = 329;
+
+    public final static short EXPORT = 330;
+
+    public final static short EXTENDS = 331;
+
+    public final static short FACET = 332;
+
+    public final static short FORALL = 333;
+
+    public final static short FUNCTION = 334;
+
+    public final static short GIVEN = 335;
+
+    public final static short HIDDEN = 336;
+
+    public final static short HIDES = 337;
+
+    public final static short IMPLEMENTS = 338;
+
+    public final static short INTERFACE = 339;
+
+    public final static short IS = 340;
+
+    public final static short KNOW = 341;
+
+    public final static short KNOWS = 342;
+
+    public final static short LAMBDA = 343;
+
+    public final static short LET = 344;
+
+    public final static short METHOD = 345;
+
+    public final static short METHODS = 346;
+
+    public final static short MODULE = 347;
+
+    public final static short NAMESPACE = 348;
+
+    public final static short NATIVE = 349;
+
+    public final static short OBEYS = 350;
+
+    public final static short OCTET = 351;
+
+    public final static short ONEWAY = 352;
+
+    public final static short PACKAGE = 353;
+
+    public final static short PRIVATE = 354;
+
+    public final static short PROTECTED = 355;
+
+    public final static short PUBLIC = 356;
+
+    public final static short RAISES = 357;
+
+    public final static short RELIANCE = 358;
+
+    public final static short RELIANT = 359;
+
+    public final static short RELIES = 360;
+
+    public final static short RELY = 361;
+
+    public final static short REVEAL = 362;
+
+    public final static short SAKE = 363;
+
+    public final static short SIGNED = 364;
+
+    public final static short STATIC = 365;
+
+    public final static short STRUCT = 366;
+
+    public final static short SUCHTHAT = 367;
 
+    public final static short SUPPORTS = 368;
+
+    public final static short SUSPECT = 369;
+
+    public final static short SUSPECTS = 370;
+
+    public final static short SYNCHRONIZED = 371;
+
+    public final static short THIS = 372;
+
+    public final static short THROWS = 373;
+
+    public final static short TRANSIENT = 374;
+
+    public final static short TRUNCATABLE = 375;
+
+    public final static short UNSIGNED = 376;
+
+    public final static short UNUM = 377;
+
+    public final static short USES = 378;
+
+    public final static short USING = 379;
+
+    public final static short UTF8 = 380;
+
+    public final static short UTF16 = 381;
+
+    public final static short VALUETYPE = 382;
+
+    public final static short VIRTUAL = 383;
+
+    public final static short VOLATILE = 384;
+
+    public final static short WSTRING = 385;
+
+    public final static short EOL = 386;
+
+    public final static short OpLAnd = 387;
+
+    public final static short OpLOr = 388;
+
+    public final static short OpSame = 389;
+
+    public final static short OpNSame = 390;
+
+    public final static short OpButNot = 391;
+
+    public final static short OpLeq = 392;
+
+    public final static short OpABA = 393;
+
+    public final static short OpGeq = 394;
+
+    public final static short OpThru = 395;
+
+    public final static short OpTill = 396;
+
+    public final static short OpAsl = 397;
+
+    public final static short OpAsr = 398;
+
+    public final static short OpFlrDiv = 399;
+
+    public final static short OpMod = 400;
+
+    public final static short OpPow = 401;
+
+    public final static short OpAss = 402;
+
+    public final static short OpAssAdd = 403;
+
+    public final static short OpAssAnd = 404;
+
+    public final static short OpAssAprxDiv = 405;
+
+    public final static short OpAssFlrDiv = 406;
+
+    public final static short OpAssAsl = 407;
+
+    public final static short OpAssAsr = 408;
+
+    public final static short OpAssRemdr = 409;
+
+    public final static short OpAssMod = 410;
+
+    public final static short OpAssMul = 411;
+
+    public final static short OpAssOr = 412;
+
+    public final static short OpAssPow = 413;
+
+    public final static short OpAssSub = 414;
+
+    public final static short OpAssXor = 415;
+
+    public final static short Send = 416;
+
+    public final static short OpWhen = 417;
+
+    public final static short MapsTo = 418;
+
+    public final static short MatchBind = 419;
+
+    public final static short MisMatch = 420;
+
+    public final static short Audit = 421;
+
+    public final static short YYERRCODE = 256;
+
+    final static short yylhs[] = {                           -1,
+        0,    0,    0,    4,    4,    2,    6,    5,    5,    7,
+        7,    8,   10,   10,   11,   11,   11,   14,   14,   12,
+        12,   12,   12,   12,   12,   12,   12,   16,   16,   21,
+        21,   22,   22,   22,   22,   22,   22,   22,   22,   22,
+        24,   24,   23,   23,   23,   23,   23,   23,   25,   25,
+        25,   26,   26,   26,   28,   28,   27,   27,   27,   30,
+        30,   29,   29,   29,   29,   29,   29,   32,   32,   31,
+        31,   34,   34,   33,   33,   33,   33,   33,   35,   35,
+        35,   35,   35,   35,   35,   35,   35,   38,   38,   38,
+        38,   38,   38,   37,   37,   37,   36,   36,   36,   36,
+        36,   36,   36,   36,   36,   36,   36,   36,   36,   36,
+        36,   36,   36,   36,   36,   36,   36,   36,   36,   36,
+        36,   36,   36,   36,   36,   59,   59,   59,   59,   59,
+        59,   43,   46,   56,   56,   56,   54,   55,   57,   57,
+        69,   68,   68,   67,   67,   67,   44,   44,   44,   45,
+        45,   70,   70,   71,   71,   72,   72,   74,   74,   75,
+        76,   76,   64,   64,   77,   77,    3,    3,    3,   79,
+        79,   79,   79,   79,   80,   80,   81,   81,   82,   82,
+        83,   83,   84,   84,   85,   85,   78,   78,   78,   78,
+        78,   78,   78,   78,   78,   19,   19,   20,   20,   86,
+        86,   86,   86,   86,   86,   86,   88,   88,   88,   89,
+        89,   60,   60,   90,   90,   15,   15,   87,   87,   92,
+        92,   92,   92,   92,   93,   93,   93,   62,   62,   62,
+        63,   95,   96,   94,   94,   97,   65,   65,   98,   98,
+        99,    1,    1,    9,    9,  100,   73,   18,   18,   39,
+        39,   91,   91,   47,   47,  101,  101,   40,   13,   41,
+        41,   17,   17,   17,   17,   17,   17,   17,   17,   17,
+        17,   17,   17,   49,   49,   50,   61,   61,   61,  104,
+        104,  105,  105,  103,  103,   52,   52,   66,  106,   53,
+        53,   58,   58,  107,  107,  107,  107,  109,  109,  109,
+        109,  108,  108,  108,  111,  111,  112,  112,  113,  113,
+        110,  110,   42,   42,   48,   51,  102,  102,  102,  102,
+        102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
+        102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
+        102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
+        102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
+        102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
+        102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
+        102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
+        102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
+    };
+
+    final static short yylen[] = {                            2,
+        1,    1,    2,    1,    1,    3,    3,    1,    3,    1,
+        3,    1,    1,    2,    1,    3,    2,    1,    1,    1,
+        3,    3,    3,    3,    4,    3,    3,    1,    3,    1,
+        3,    1,    3,    3,    3,    3,    3,    3,    3,    3,
+        1,    1,    1,    3,    3,    3,    3,    3,    1,    3,
+        3,    1,    3,    3,    1,    1,    1,    3,    3,    1,
+        1,    1,    3,    3,    3,    3,    3,    1,    1,    1,
+        3,    1,    1,    1,    2,    2,    2,    2,    1,    1,
+        4,    4,    3,    3,    2,    3,    4,    2,    3,    3,
+        4,    2,    3,    1,    2,    3,    1,    1,    1,    1,
+        1,    1,    1,    3,    2,    1,    3,    3,    2,    4,
+        4,    5,    5,    1,    1,    1,    1,    3,    2,    2,
+        3,    2,    3,    2,    1,    2,    4,    3,    3,    4,
+        3,    1,    3,    4,    6,    7,    8,    5,    5,    6,
+        0,    6,    6,    0,    1,    1,    0,    1,    3,    1,
+        2,    2,    3,    1,    3,    1,    2,    1,    4,    2,
+        1,    4,    1,    1,    3,    2,    1,    3,    4,    1,
+        3,    5,    3,    5,    1,    2,    1,    2,    1,    2,
+        2,    3,    1,    1,    1,    3,    3,    1,    2,    1,
+        3,    1,    1,    3,    3,    4,    2,    4,    2,    1,
+        1,    2,    2,    3,    3,    1,    2,    2,    2,    1,
+        3,    1,    3,    1,    4,    2,    5,    1,    1,    4,
+        6,    4,    6,    4,    4,    5,    2,    4,    5,    2,
+        6,    4,    3,    0,    2,    3,    8,    6,    1,    3,
+        3,    0,    1,    1,    2,    0,    1,    3,    2,    1,
+        1,    1,    3,    1,    3,    3,    2,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    4,    6,    4,    5,    1,    1,    1,
+        3,    1,    3,    1,    3,    1,    1,    2,    4,    0,
+        3,    5,    3,    1,    2,    2,    4,    2,    4,    2,
+        4,    2,    5,    4,    2,    3,    1,    4,    2,    2,
+        0,    2,    1,    1,    0,    0,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+    };
+
+    final static short yydefred[] = {                         0,
+        244,    0,    0,    0,    2,    0,  260,    0,    0,    0,
+        313,  314,    0,    0,  317,  318,  319,  320,  321,  322,
+        323,  324,  325,  326,  327,  328,  329,  330,  331,  332,
+        333,  334,  335,  336,  337,  338,  339,  340,  341,  342,
+        343,  344,  345,  346,  347,  348,  349,  350,  351,  352,
+        353,  354,  355,  356,  357,  358,  359,  360,  361,  362,
+        363,  364,  365,  366,  367,  368,  369,  370,  371,  372,
+        373,  374,  375,  376,  377,  378,  379,  380,  381,  382,
+        383,  384,  385,  386,  387,  388,  389,  390,  391,  392,
+        393,  394,  395,  396,  397,  398,  399,  400,    0,    0,
+        0,    0,    3,    0,  192,  193,    0,    0,    0,  177,
+        0,  170,  175,  261,   97,   98,   99,  100,  101,    0,
+        0,  103,    0,  315,  315,    0,    0,    4,    0,    0,
+        5,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    8,   12,    0,   15,  132,    0,    0,
+        0,    0,   30,    0,    0,    0,    0,    0,   62,    0,
+        0,   94,    0,   80,    0,  102,    0,  106,    0,  114,
+        115,  116,  117,  125,    0,    0,  245,    0,    0,    0,
+        259,    0,    0,    0,    0,    0,  176,  189,    0,  247,
+        0,    0,  156,    0,    0,    0,  161,    0,    0,    0,
+        0,    0,    0,  179,  178,    0,    0,    0,    0,    0,
+        0,    0,    0,  218,  219,    0,    0,    0,    0,  201,
+        200,    0,    0,  206,  315,    0,    0,    0,  315,    0,
+        0,  124,    0,   78,   77,   75,   76,    0,    0,    0,
+        0,    0,  250,    0,  254,  119,  120,  122,    0,    0,
+        0,    0,    0,    0,    0,    0,  207,    6,    0,    0,
+        0,    0,    0,  262,  263,  264,  265,  266,    0,  267,
+        268,  269,  270,  271,  272,  273,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,  258,
+        0,    0,    0,    0,    0,    0,  150,  105,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,  109,    0,
+        0,  126,  278,  279,    0,  194,  195,    0,    0,  191,
+        208,  209,  166,    0,    0,    0,  157,    0,    0,  160,
+        0,   10,  149,  187,    0,    0,  154,  185,    0,    0,
+        183,  181,  184,    0,  180,  168,  118,  121,  104,  146,
+        145,    0,    0,    0,    0,  202,  203,  129,    0,    0,
+        252,    0,  246,    0,    0,    0,  123,    0,    0,    0,
+        0,  257,    0,  107,  108,    0,    0,    0,    0,    0,
+        0,    0,    0,    9,    0,   16,    0,    0,   21,   23,
+        0,   18,   22,   19,   26,   27,   31,   33,   34,   42,
+        41,   38,   39,   40,   35,   36,   37,   45,   46,   47,
+        44,   48,    0,    0,   56,    0,   53,    0,   61,    0,
+        58,   59,   69,   68,   65,   67,   63,   64,   66,   73,
+        72,   71,    0,    0,    0,    0,    0,    0,    0,  249,
+        0,    0,    0,  152,    0,  151,    0,    0,    0,  164,
+        0,    0,  128,  246,    0,    0,    0,  131,    0,    0,
+        246,    0,    0,    0,  214,    0,  196,  198,  165,    0,
+        0,    0,    0,    7,    0,  133,  169,    0,    0,  182,
+        0,    0,  316,  204,  205,    0,    0,  236,  315,    0,
+        286,    0,  315,  246,    0,    0,    0,    0,    0,  302,
+        293,  256,    0,  255,  253,    0,    0,   25,    0,  216,
+        0,    0,   81,    0,  248,    0,  153,  110,    0,    0,
+        316,    0,  287,  111,  158,    0,    0,    0,  230,  130,
+        316,    0,  280,    0,  233,    0,  127,    0,  172,  159,
+        174,    0,  162,   11,  155,  186,  315,  139,    0,    0,
+        0,    0,  288,    0,  138,    0,    0,  239,    0,  284,
+        0,    0,    0,  305,    0,  307,    0,    0,    0,    0,
+        294,    0,    0,    0,  312,    0,  315,  315,  112,    0,
+        113,    0,    0,  235,  274,    0,    0,    0,    0,    0,
+        232,    0,    0,  315,  140,    0,    0,    0,    0,    0,
+        0,    0,  276,    0,    0,  310,  309,    0,  306,  304,
+        295,  298,  300,  292,  296,    0,    0,    0,    0,    0,
+        135,  228,    0,  316,    0,    0,    0,  281,    0,  277,
+        215,    0,    0,  231,    0,  291,  241,  238,  240,    0,
+        285,    0,    0,    0,    0,  303,  217,  316,  136,  229,
+        275,    0,    0,    0,    0,    0,    0,  283,  316,    0,
+        289,    0,  308,  297,  299,  301,  137,    0,  224,    0,
+        0,    0,  227,  220,  222,    0,    0,  237,  316,    0,
+        316,    0,  143,  142,  223,  225,  221,    0,  226,
+    };
+
+    final static short yydgoto[] = {                          3,
+        198,    5,  545,  186,  143,  381,  351,  144,    6,  352,
+        146,  147,  148,  413,  443,  149,  277,  312,  105,  106,
+        152,  153,  154,  422,  155,  156,  157,  437,  158,  441,
+        159,  445,  160,  452,  161,  162,  163,  164,  241,  390,
+        107,  165,  166,  167,  318,  168,  242,  169,  329,  387,
+        570,  509,  575,  170,  171,  172,  173,  232,  174,  175,
+        332,  479,  222,  469,  228,  510,  372,  568,  569,  319,
+        361,  192,  193,  194,  195,  196,  197,  110,  111,  112,
+        113,  205,  206,  362,  363,  223,  224,  176,  225,  486,
+        244,  608,  675,  693,  333,  334,  230,  577,  578,  511,
+        245,  114,  581,  554,  610,  573,  592,  391,  593,  520,
+        516,  585,  586,
+    };
+
+    final static short yysindex[] = {                      -310,
+        0,15951,    0,14168,    0, -280,    0, -127, -122,19458,
+        0,    0,19458,   87,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,16556,19458,
+        12002, -229,    0,  104,    0,    0,    0,  163,  -95,    0,
+        142,    0,    0,    0,    0,    0,    0,    0,    0,  -44,
+        6,    0,14521,    0,    0,19458,19086,    0,19458,16806,
+        0,  163,19086,19458,16556,16556,16556, -306,   -9,    8,
+        -229,15129, -229,    0,    0,  190,    0,    0,  735, -125,
+        -109, -107,    0,  -24,   76,   66,   52,    2,    0,  -84,
+        12592,    0,  265,    0,12252,    0,  -23,    0,  694,    0,
+        0,    0,    0,    0,  197,  -93,    0,  201,  216,  285,
+        0,  290,14521,19458,19458,19086,    0,    0,16680,    0,
+        -48,  260,    0,  -27,  284,  -26,    0,14168,  332,14521,
+        -229,  -40,  456,    0,    0,   46,14521,  255,  257,   49,
+        16075,16075,  285,    0,    0,  127,  131,19458,19458,    0,
+        0,  271,  -14,    0,    0,  290, -229,  271,    0,  -20,
+        289,    0,17870,    0,    0,    0,    0,19458,14168,   -5,
+        323,   17,    0,  373,    0,    0,    0,    0,  379,  164,
+        176,19458,19458,   87,   32,  104,    0,    0,12721,14168,
+        265,14521,14168,    0,    0,    0,    0,    0,14168,    0,
+        0,    0,    0,    0,    0,    0,14650,14168,14168,14521,
+        14521,14521,15003,15951,15951,15003,15003,15003,14521,14521,
+        14521,14521,14521,14521,14521,15003,14521,15003,15003,15003,
+        15003,15003,15003,15003,15003,18588, -229,19458,  265,    0,
+        -229,  147,18588,  147,  265, -152,    0,    0,   58,15951,
+        12127,  163,  163,  271,  271,  163,17994, -229,    0, -229,
+        17400,    0,    0,    0,19458,    0,    0,14521,14521,    0,
+        0,    0,    0,15951,  396, -229,    0,  325, -229,    0,
+        -229,    0,    0,    0,  409,15951,    0,    0, -229,15951,
+        0,    0,    0,  456,    0,    0,    0,    0,    0,    0,
+        0,  271,  197,  327,  333,    0,    0,    0,19458,  419,
+        0,   40,    0,  431,19086, -229,    0, -229, -229,   61,
+        86,    0, -229,    0,    0, -306, -229,    0,  348,  350,
+        285,  290,14168,    0,15129,    0,  147, -107,    0,    0,
+        -12,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,  -96,  -96,    0,   52,    0,   52,    0,    2,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,  147,  265,  383,  265,  147,  437, -126,    0,
+        147,  265,  147,    0, -152,    0,  271,  -48,  193,    0,
+        271,  289,    0,    0,  271,15601,   89,    0,  271,14039,
+        0,  271,15951,  271,    0,  436,    0,    0,    0,16423,
+        15951,16423,12127,    0,12721,    0,    0,  357,  358,    0,
+        210, -112,    0,    0,    0,  436,15601,    0,    0,    0,
+        0, -229,    0,    0,19210,  445, -184, -229,19458,    0,
+        0,    0,   -5,    0,    0,    0,    0,    0,  104,    0,
+        102,  147,    0,  147,    0,  147,    0,    0,14168,  206,
+        0,    0,    0,    0,    0,  451,15601,14521,    0,    0,
+        0, -229,    0,    0,    0,  271,    0, -229,    0,    0,
+        0,  -48,    0,    0,    0,    0,    0,    0,  220,  210,
+        455,  221,    0,  214,    0,   90,  179,    0,  463,    0,
+        381,  446,  446,    0,  -10,    0,  446, -229,18712,18712,
+        0,  390, -229,  477,    0, -229,    0,    0,    0, -103,
+        0,  462,  480,    0,    0,  397, -133, -229,    0,  400,
+        0,19458,16075,    0,    0,  462,15951,  271,15951,  462,
+        -229,15951,    0,  242, -229,    0,    0, -229,    0,    0,
+        0,    0,    0,    0,    0, -213,  446,  213,  271,  -64,
+        0,    0,  462,    0,  163,18836,18836,    0, -229,    0,
+        0,  197,16075,    0,  271,    0,    0,    0,    0,  230,
+        0,19210, -229,18712,18712,    0,    0,    0,    0,    0,
+        0, -111,15601,  -30,  271,  114,  271,    0,    0,  271,
+        0,  462,    0,    0,    0,    0,    0,  163,    0,  489,
+        14168,15601,    0,    0,    0,  210,  210,    0,    0,  462,
+        0,  497,    0,    0,    0,    0,    0,  462,    0,
+    };
+
+    final static short yyrindex[] = {                      9616,
+        0,   81,    0,  645,    0, 8526,    0,    0,    0,    0,
+        0,    0,    0, 8650,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,  821,    0,
+        20,13686,    0, 8916,    0,    0,  969,    0,    0,    0,
+        9219,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,  821,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,  821,  821,  821,13075,    0,    0,
+        13686,   81,  540,    0,    0,   25,    0,    0,  779,    0,
+        0, 9416,    0, 9379, 8346, 7962, 7503, 7330,    0, 7291,
+        6907,    0, 5168,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,17524,17152,    0,    0,    0, 8951,
+        0, 8984,  821,    0,    0,    0,    0,    0,    0,    0,
+        -35,    0,    0,   30,    0,  449,    0,  821,    0,  821,
+        13686,    0,    0,    0,    0,    0,  821,    0,    0,    0,
+        -88,  -86,11183,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,18340,    0,    0,11529,13686,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,  661,   29,
+        0,    0,    0,   33,    0,    0,    0,    0,    0,    0,
+        0,    0,    0, 9773,    0, 1135,    0,    0,  791,  391,
+        0,  821,  821,    0,    0,    0,    0,    0,  821,    0,
+        0,    0,    0,    0,    0,    0,  821,  821,  821,  821,
+        821,  821,  821,   81,   81,  821,  821,  821,  821,  821,
+        821,  821,  821,  821,  821,  821,  821,  821,  821,  821,
+        821,  821,  821,  821,  821,    0,13075,    0, 5589,    0,
+        13204, 1522,    0, 2848, 5748,    0,    0,    0,    0,   81,
+        81,    0,    0,    0,    0,    0,    0,13557,    0,  -80,
+        0,    0,    0,    0,    0,    0,    0,  821,  821,    0,
+        0,    0,    0,   81, 9142,15477,    0, 9182,11654,    0,
+        -8,    0,    0,    0,    0,   81,    0,    0,13686,   81,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,  -94,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,  -60,    0,18960,  -37, -105,
+        0,    0,13686,    0,    0,13686,13686, 1681,    0,    0,
+        10119,10243,  821,    0,   81,    0,  746, 9449,    0,    0,
+        13686,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0, 8193, 8269,    0, 7809,    0, 7886,    0, 7367,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0, 3269, 6169,    0, 6328, 2102,    0,    0,    0,
+        3428, 6749, 3849,    0,    0,    0,    0,  261,    0,    0,
+        0,    0,    0,    0,    0,    5,  423,    0,    0,  821,
+        0,    0,   81,    0,    0,17276,    0,    0,    0,   81,
+        81,   81,   81,    0,  -18,    0,    0,    0,    0,    0,
+        276,    0,    0,    0,    0,18464,    5,    0,    0, 2261,
+        0,13686,    0,    0,  511,    0,  426,18960,    0,    0,
+        0,    0,    0,    0,    0,10589,10713,    0,11059,    0,
+        0, 4008,    0, 4429,    0, 4588,    0,    0,  821, 5009,
+        0, 2682,    0,    0,    0,    0,    5,  821,    0,    0,
+        0,  429,    0,  280,    0,    0,    0,19582,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,  276,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        270,    7,    7,    0,  517,    0, -105,  429,    0,    0,
+        0,    0,  429,    0,    0,13686,    0,    0,    0,    0,
+        0,  423,    0,    0,    0,    0,    0,  -80,  -69,    0,
+        0,    0,  -86,    0,    0,  423,   81,    0,   81,  423,
+        13686,   81,    0,    0,  -65,    0,    0,19334,    0,    0,
+        0,    0,    0,    0,    0,  440, -105,    0,    0,    0,
+        0,    0,  423,    0,    0,    0,    0,    0,  429,    0,
+        0,  -94,  -88,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,  429,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    5,  423,    0,  423,    0,    0,    0,    0,
+        0,  423,    0,    0,    0,    0,    0,    0,    0,    0,
+        821,    5,    0,    0,    0,  276,  276,    0,    0,  423,
+        0,    0,    0,    0,    0,    0,    0,  423,    0,
+    };
+
+    final static short yygindex[] = {                         0,
+        1,    0,  243,   37,    0,  -98,   91,  302, -137,   -1,
+        0, -247,   -2,    0,  903,    0,    0,  295,  159,  188,
+        307,  293,  -49,  143,   45,   67,  -71,    0,   57,  275,
+        233,  457,  272,    0,    0,  -46,    0,    0,  -67, -146,
+        580,   48, -231,   19,    0,  -70,    0,  510,  322,   98,
+        51,  106,   36,    0,    0,  -17,    0,    0,  310,    0,
+        -331,  251,    0,    0,    0,  110, -207, -498,    0,    0,
+        -269, -343,  -83,  -34,    0,    0, -257,  407, -301,    0,
+        0,    0,    0,  234,    0, -118,    0,    0,  -76,  218,
+        -225,    0,  -62, -414, -488,   -4,    0,    0,  -21, -190,
+        211,    0,   59,    0,    0,    0,    0, -512,    0, -500,
+        88,    0,  -50,
+    };
+
+    final static int YYTABLESIZE = 19967;
+
 //These two tables are not statically initialized, but rather
 //initialized on first use, so that a failure to initialize them
 //can successfully report the problem.
-static private short[] yytable = null;
-static private short[] yycheck = null;
-/** Ensures that yytable and yycheck are initialized. */
-static private void initTables() {
-    if (null != yycheck) {
-        return;
-    }
-    try {
-        String rName = "org/erights/e/elang/syntax/ParserTables.data";
-        InputStream inp = ClassLoader.getSystemResourceAsStream(rName);
-        if (null == inp) {
-            throw new RuntimeException(rName + " not found");
+    static private short[] yytable = null;
+
+    static private short[] yycheck = null;
+
+    /** Ensures that yytable and yycheck are initialized. */
+    static private void initTables() {
+        if (null != yycheck) {
+            return;
         }
-        ObjectInput obInp = new ObjectInputStream(inp);
-        yytable = (short[])obInp.readObject();
-        yycheck = (short[])obInp.readObject();
-        long hash = EYaccFixer.checkhash(yytable, yycheck);
-        if (hash != -4408874519322207609L) {
-            throw new RuntimeException(rName + " bad checkhash: " +
-                                       hash);
+        try {
+            String rName = "org/erights/e/elang/syntax/ParserTables.data";
+            InputStream inp = ClassLoader.getSystemResourceAsStream(rName);
+            if (null == inp) {
+                throw new RuntimeException(rName + " not found");
+            }
+            ObjectInput obInp = new ObjectInputStream(inp);
+            yytable = (short[])obInp.readObject();
+            yycheck = (short[])obInp.readObject();
+            long hash = EYaccFixer.checkhash(yytable, yycheck);
+            if (hash != -4408874519322207609L) {
+                throw new RuntimeException(rName + " bad checkhash: " +
+                                           hash);
+            }
+        } catch (Exception ex) {
+            throw ThrowableSugar.backtrace(ex, "initializing parser");
         }
-    } catch (Exception ex) {
-        throw ThrowableSugar.backtrace(ex, "initializing parser");
     }
-}
-
-final static short YYFINAL=3;
-final static short YYMAXTOKEN=421;
-final static String yyname[] = {
-"end-of-file",null,null,null,null,null,null,null,null,null,null,null,null,null,
-null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,
-null,null,null,"'!'",null,null,"'$'","'%'","'&'",null,"'('","')'","'*'","'+'",
-"','","'-'","'.'","'/'",null,null,null,null,null,null,null,null,null,null,"':'",
-"';'","'<'",null,"'>'","'?'","'@'",null,null,null,null,null,null,null,null,null,
-null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,
-null,"'['",null,"']'","'^'",null,null,null,null,null,null,null,null,null,null,
-null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,
-null,null,"'{'","'|'","'}'","'~'",null,null,null,null,null,null,null,null,null,
-null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,
-null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,
-null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,
-null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,
-null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,
-null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,
-null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,
-null,null,null,null,null,null,null,null,null,"LiteralInteger","LiteralFloat64",
-"LiteralChar","LiteralString","LiteralTwine","Identifier","VerbAssign",
-"QuasiOpen","QuasiClose","DollarIdent","AtIdent","DollarOpen","AtOpen","URI",
-"URIStart","BodyStartWord","BodyNextWord","VTableStartWord","VTableNextWord",
-"BIND","CATCH","CLASS","DEF","DELEGATE","ELSE","ESCAPE","FINALLY","FOR","IF",
-"IN","MATCH","META","PRAGMA","SWITCH","THUNK","TO","TRY","VAR","WHEN","WHILE",
-"_","DEFINE","ON","SELECT","TYPEDEF","ABSTRACT","AN","AS","ATTRIBUTE","BE",
-"BEGIN","BEHALF","BELIEF","BELIEVE","BELIEVES","CASE","CONST","CONSTRUCTOR",
-"CONTEXT","DECLARE","DEFAULT","DEFMACRO","DEPRECATED","DISPATCH","DO",
-"ENCAPSULATE","ENCAPSULATED","ENCAPSULATES","END","ENSURE","ENUM","EVENTUAL",
-"EVENTUALLY","EXPORT","EXTENDS","FACET","FORALL","FUNCTION","GIVEN","HIDDEN",
-"HIDES","IMPLEMENTS","INTERFACE","IS","KNOW","KNOWS","LAMBDA","LET","METHOD",
-"METHODS","MODULE","NAMESPACE","NATIVE","OBEYS","OCTET","ONEWAY","PACKAGE",
-"PRIVATE","PROTECTED","PUBLIC","RAISES","RELIANCE","RELIANT","RELIES","RELY",
-"REVEAL","SAKE","SIGNED","STATIC","STRUCT","SUCHTHAT","SUPPORTS","SUSPECT",
-"SUSPECTS","SYNCHRONIZED","THIS","THROWS","TRANSIENT","TRUNCATABLE","UNSIGNED",
-"UNUM","USES","USING","UTF8","UTF16","VALUETYPE","VIRTUAL","VOLATILE","WSTRING",
-"EOL","OpLAnd","OpLOr","OpSame","OpNSame","OpButNot","OpLeq","OpABA","OpGeq",
-"OpThru","OpTill","OpAsl","OpAsr","OpFlrDiv","OpMod","OpPow","OpAss","OpAssAdd",
-"OpAssAnd","OpAssAprxDiv","OpAssFlrDiv","OpAssAsl","OpAssAsr","OpAssRemdr",
-"OpAssMod","OpAssMul","OpAssOr","OpAssPow","OpAssSub","OpAssXor","Send",
-"OpWhen","MapsTo","MatchBind","MisMatch","Audit",
-};
-final static String yyrule[] = {
-"$accept : start",
-"start : br",
-"start : topExpr",
-"start : MatchBind pattern",
-"define : DEF",
-"define : DEFINE",
-"topExpr : br topSeqs br",
-"eExpr : br seqs br",
-"topSeqs : topSeq",
-"topSeqs : topSeqs EOLs topSeq",
-"seqs : seq",
-"seqs : seqs EOLs seq",
-"topSeq : seq",
-"seq : assigns",
-"seq : assigns ';'",
-"assigns : assign",
-"assigns : assigns ';' assign",
-"assigns : define noun",
-"nAssign : assign",
-"nAssign : plural",
-"assign : cond",
-"assign : cond OpAss assign",
-"assign : cond assignop nAssign",
-"assign : cond OpAssAsr assign",
-"assign : cond VerbAssign parenArgs",
-"assign : define pattern OpAss assign",
-"assign : binder OpAss assign",
-"assign : varNamer OpAss assign",
-"cond : condAnd",
-"cond : cond OpLOr condAnd",
-"condAnd : comp",
-"condAnd : condAnd OpLAnd comp",
-"comp : order",
-"comp : order OpSame order",
-"comp : order OpNSame order",
-"comp : order '&' nOrder",
-"comp : order '|' nOrder",
-"comp : order '^' nOrder",
-"comp : order OpButNot nOrder",
-"comp : order MatchBind pattern",
-"comp : order MisMatch pattern",
-"nOrder : order",
-"nOrder : plural",
-"order : interval",
-"order : interval '<' interval",
-"order : interval OpLeq interval",
-"order : interval OpABA interval",
-"order : interval OpGeq interval",
-"order : interval '>' interval",
-"interval : shift",
-"interval : shift OpThru shift",
-"interval : shift OpTill shift",
-"shift : add",
-"shift : shift OpAsl nAdd",
-"shift : shift OpAsr add",
-"nAdd : add",
-"nAdd : plural",
-"add : mult",
-"add : add '+' nMult",
-"add : add '-' nMult",
-"nMult : mult",
-"nMult : plural",
-"mult : pow",
-"mult : mult '*' nPow",
-"mult : mult '/' nPow",
-"mult : mult OpFlrDiv nPow",
-"mult : mult '%' nPow",
-"mult : mult OpMod nPow",
-"nPow : pow",
-"nPow : plural",
-"pow : prefix",
-"pow : prefix OpPow nPrefix",
-"nPrefix : prefix",
-"nPrefix : plural",
-"prefix : postfix",
-"prefix : '!' prim",
-"prefix : '~' prim",
-"prefix : '-' prim",
-"prefix : '&' noun",
-"postfix : call",
-"postfix : metaExpr",
-"postfix : postfix '[' argList ']'",
-"postfix : postfix Send verb parenArgs",
-"postfix : postfix Send parenArgs",
-"postfix : postfix Send verb",
-"postfix : postfix verb",
-"postfix : postfix '.' ident",
-"postfix : postfix '.' ident parenArgs",
-"metaExpr : metaoid parenArgs",
-"metaExpr : metaoid verb parenArgs",
-"metaExpr : metaoid Send parenArgs",
-"metaExpr : metaoid Send verb parenArgs",
-"metaExpr : metaoid verb",
-"metaExpr : metaoid Send verb",
-"call : prim",
-"call : call parenArgs",
-"call : postfix verb parenArgs",
-"prim : LiteralInteger",
-"prim : LiteralFloat64",
-"prim : LiteralChar",
-"prim : LiteralString",
-"prim : LiteralTwine",
-"prim : nounExpr",
-"prim : URI",
-"prim : URIStart add '>'",
-"prim : quasiParser quasiExpr",
-"prim : parenExpr",
-"prim : '[' argList ']'",
-"prim : '[' maps ']'",
-"prim : begin body",
-"prim : begin ESCAPE pattern body",
-"prim : begin WHILE parenExpr body",
-"prim : begin SWITCH parenExpr caseList end",
-"prim : begin TRY body catchList finallyClause",
-"prim : forExpr",
-"prim : whenExpr",
-"prim : ifExpr",
-"prim : macro",
-"prim : DollarOpen LiteralInteger '}'",
-"prim : '$' LiteralInteger",
-"prim : '$' '$'",
-"prim : AtOpen LiteralInteger '}'",
-"prim : '@' LiteralInteger",
-"prim : SELECT parenExpr caseList",
-"prim : TYPEDEF oType",
-"prim : object",
-"object : defAudits vTable",
-"object : defAudits begin funcHead body",
-"object : begin THUNK body",
-"object : CLASS classHead body",
-"object : begin _ funcHead body",
-"object : begin _ body",
-"nounExpr : noun",
-"parenExpr : '(' eExpr ')'",
-"ifExpr : begin IF parenExpr body",
-"ifExpr : begin IF parenExpr body ELSE ifExpr",
-"ifExpr : begin IF parenExpr body ELSE begin body",
-"forExpr : begin FOR iterPattern IN assign begin body end",
-"whenExpr : WHEN whenHead body catches finallyClause",
-"macro : BodyStartWord begin macroArg body restMacro",
-"macro : VTableStartWord begin macroArg vTable end restMacro",
-"$$1 :",
-"restMacro : $$1 BodyNextWord begin macroArg body restMacro",
-"restMacro : VTableNextWord begin macroArg vTable end restMacro",
-"macroArg :",
-"macroArg : parenExpr",
-"macroArg : pattern",
-"quasiParser :",
-"quasiParser : ident",
-"quasiParser : '(' eExpr ')'",
-"quasiExpr : QuasiClose",
-"quasiExpr : innerExprs QuasiClose",
-"innerExprs : QuasiOpen innerExpr",
-"innerExprs : innerExprs QuasiOpen innerExpr",
-"innerExpr : DollarIdent",
-"innerExpr : DollarOpen eExpr '}'",
-"patternList : emptyBr",
-"patternList : patterns br",
-"patterns : pattern",
-"patterns : patterns ',' br pattern",
-"mapPatternList : mapPatterns br",
-"mapPatterns : mapPattern",
-"mapPatterns : mapPatterns ',' br mapPattern",
-"iterPattern : pattern",
-"iterPattern : mapPattern",
-"mapPattern : pattern MapsTo pattern",
-"mapPattern : MapsTo namer",
-"pattern : listPatt",
-"pattern : listPatt '?' order",
-"pattern : metaoid parenExpr MapsTo pattern",
-"listPatt : eqPatt",
-"listPatt : '[' patternList ']'",
-"listPatt : '[' patternList ']' '+' listPatt",
-"listPatt : '[' mapPatternList ']'",
-"listPatt : '[' mapPatternList ']' '|' listPatt",
-"eqPatt : quasiPatt",
-"eqPatt : OpSame prim",
-"quasiPatt : namer",
-"quasiPatt : quasiParser quasiPattern",
-"quasiPattern : QuasiClose",
-"quasiPattern : innerThings QuasiClose",
-"innerThings : QuasiOpen innerThing",
-"innerThings : innerThings QuasiOpen innerThing",
-"innerThing : innerExpr",
-"innerThing : innerPattern",
-"innerPattern : AtIdent",
-"innerPattern : AtOpen pattern '}'",
-"namer : noun ':' order",
-"namer : noun",
-"namer : '&' noun",
-"namer : _",
-"namer : _ ':' order",
-"namer : binder",
-"namer : varNamer",
-"namer : DollarOpen LiteralInteger '}'",
-"namer : AtOpen LiteralInteger '}'",
-"binder : BIND noun ':' order",
-"binder : BIND noun",
-"varNamer : VAR noun ':' order",
-"varNamer : VAR noun",
-"oName : noun",
-"oName : _",
-"oName : BIND noun",
-"oName : VAR noun",
-"oName : DollarOpen LiteralInteger '}'",
-"oName : AtOpen LiteralInteger '}'",
-"oName : litString",
-"defName : define oName",
-"defName : BIND noun",
-"defName : VAR noun",
-"audits : oName",
-"audits : oName Audit nounExprs",
-"defAudits : defName",
-"defAudits : defName Audit nounExprs",
-"nounExprs : nounExpr",
-"nounExprs : nounExprs ',' br nounExpr",
-"plural : '(' ')'",
-"plural : '(' eExpr ',' args ')'",
-"litString : LiteralString",
-"litString : LiteralTwine",
-"method : begin TO methHead body",
-"method : begin TO verb OpAss assign end",
-"method : begin ON methHead body",
-"method : begin META parenExpr MapsTo parenExpr end",
-"method : begin META parenExpr body",
-"methHead : '(' patternList ')' resultGuard",
-"methHead : verb '(' patternList ')' resultGuard",
-"methHead : verb resultGuard",
-"funcHead : '(' patternList ')' resultGuard",
-"funcHead : verb '(' patternList ')' resultGuard",
-"funcHead : verb resultGuard",
-"classHead : audits begin '(' patternList ')' resultGuard",
-"matcher : begin MATCH pattern body",
-"delegator : begin DELEGATE body",
-"resultGuard :",
-"resultGuard : ':' order",
-"whenArgs : '(' args ')'",
-"whenHead : whenArgs OpWhen audits begin '(' patterns ')' resultGuard",
-"whenHead : audits begin '(' whenClauses ')' resultGuard",
-"whenClauses : whenClause",
-"whenClauses : whenClauses ',' whenClause",
-"whenClause : eExpr OpWhen pattern",
-"br :",
-"br : EOLs",
-"EOLs : EOL",
-"EOLs : EOLs EOL",
-"emptyList :",
-"emptyBr : br",
-"parenArgs : '(' argList ')'",
-"parenArgs : parenArgs object",
-"argList : emptyBr",
-"argList : args",
-"args : eExpr",
-"args : args ',' eExpr",
-"maps : map",
-"maps : maps ',' map",
-"map : eExpr MapsTo eExpr",
-"map : MapsTo nounExpr",
-"verb : ident",
-"noun : ident",
-"ident : Identifier",
-"ident : reserved",
-"assignop : OpAssAdd",
-"assignop : OpAssAnd",
-"assignop : OpAssAprxDiv",
-"assignop : OpAssFlrDiv",
-"assignop : OpAssAsl",
-"assignop : OpAssRemdr",
-"assignop : OpAssMod",
-"assignop : OpAssMul",
-"assignop : OpAssOr",
-"assignop : OpAssPow",
-"assignop : OpAssSub",
-"assignop : OpAssXor",
-"body : '{' br '}' end",
-"body : '{' br seqs br '}' end",
-"caseList : '{' br matchList '}'",
-"vTable : '{' br methodList vMatchList '}'",
-"vTable : matcher",
-"vTable : delegator",
-"methodList : emptyList",
-"methodList : methodList method br",
-"vMatchList : matchList",
-"vMatchList : matchList delegator br",
-"matchList : emptyList",
-"matchList : matchList matcher br",
-"catchList : emptyList",
-"catchList : catches",
-"catches : catchList catchClause",
-"catchClause : begin CATCH pattern body",
-"finallyClause :",
-"finallyClause : begin FINALLY body",
-"oType : audits '{' br messageList '}'",
-"oType : audits mType EOL",
-"messageList : emptyList",
-"messageList : DELEGATE br",
-"messageList : messages br",
-"messageList : messages EOLs DELEGATE br",
-"messages : TO mType",
-"messages : messages EOLs TO mType",
-"messages : ON mType",
-"messages : messages EOLs ON mType",
-"mType : verb optType",
-"mType : verb '(' pTypeList ')' optType",
-"mType : '(' pTypeList ')' optType",
-"pTypeList : br emptyList",
-"pTypeList : br pTypes br",
-"pTypes : pType",
-"pTypes : pTypes ',' br pType",
-"pType : noun optType",
-"pType : _ optType",
-"optType :",
-"optType : ':' nounExpr",
-"metaoid : META",
-"metaoid : PRAGMA",
-"begin :",
-"end :",
-"reserved : ABSTRACT",
-"reserved : AN",
-"reserved : AS",
-"reserved : ATTRIBUTE",
-"reserved : BE",
-"reserved : BEGIN",
-"reserved : BEHALF",
-"reserved : BELIEF",
-"reserved : BELIEVE",
-"reserved : BELIEVES",
-"reserved : CASE",
-"reserved : CONST",
-"reserved : CONSTRUCTOR",
-"reserved : CONTEXT",
-"reserved : DECLARE",
-"reserved : DEFAULT",
-"reserved : DEFMACRO",
-"reserved : DEPRECATED",
-"reserved : DISPATCH",
-"reserved : DO",
-"reserved : ENCAPSULATE",
-"reserved : ENCAPSULATED",
-"reserved : ENCAPSULATES",
-"reserved : END",
-"reserved : ENSURE",
-"reserved : ENUM",
-"reserved : EVENTUAL",
-"reserved : EVENTUALLY",
-"reserved : EXPORT",
-"reserved : EXTENDS",
-"reserved : FACET",
-"reserved : FORALL",
-"reserved : FUNCTION",
-"reserved : GIVEN",
-"reserved : HIDDEN",
-"reserved : HIDES",
-"reserved : IMPLEMENTS",
-"reserved : INTERFACE",
-"reserved : IS",
-"reserved : KNOW",
-"reserved : KNOWS",
-"reserved : LAMBDA",
-"reserved : LET",
-"reserved : METHOD",
-"reserved : METHODS",
-"reserved : MODULE",
-"reserved : NAMESPACE",
-"reserved : NATIVE",
-"reserved : OBEYS",
-"reserved : OCTET",
-"reserved : ONEWAY",
-"reserved : PACKAGE",
-"reserved : PRIVATE",
-"reserved : PROTECTED",
-"reserved : PUBLIC",
-"reserved : RAISES",
-"reserved : RELIANCE",
-"reserved : RELIANT",
-"reserved : RELIES",
-"reserved : RELY",
-"reserved : REVEAL",
-"reserved : SAKE",
-"reserved : SIGNED",
-"reserved : STATIC",
-"reserved : STRUCT",
-"reserved : SUCHTHAT",
-"reserved : SUPPORTS",
-"reserved : SUSPECT",
-"reserved : SUSPECTS",
-"reserved : SYNCHRONIZED",
-"reserved : THIS",
-"reserved : THROWS",
-"reserved : TRANSIENT",
-"reserved : TRUNCATABLE",
-"reserved : UNSIGNED",
-"reserved : UNUM",
-"reserved : USES",
-"reserved : USING",
-"reserved : UTF8",
-"reserved : UTF16",
-"reserved : VALUETYPE",
-"reserved : VIRTUAL",
-"reserved : VOLATILE",
-"reserved : WSTRING",
-};
 
-//#line 1183 "e.y"
+    final static short YYFINAL = 3;
 
-/**
- *
- */
-static public final StaticMaker EParserMaker =
-    StaticMaker.make(EParser.class);
-
-/** 
- * caches previous simple parses (as is used for quasi-parsing)
- */
-static private IdentityCacheTable OurCache =
-    new IdentityCacheTable(ENode.class, 100);
-
-/**
- *
- */
-static private final ConstMap DefaultProps = 
-  ConstMap.fromProperties(System.getProperties());
+    final static short YYMAXTOKEN = 421;
 
+    final static String yyname[] = {
+        "end-of-file",null,null,null,null,null,null,null,null,null,null,null,null,null,
+        null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,
+        null,null,null,"'!'",null,null,"'$'","'%'","'&'",null,"'('","')'","'*'","'+'",
+        "','","'-'","'.'","'/'",null,null,null,null,null,null,null,null,null,null,"':'",
+        "';'","'<'",null,"'>'","'?'","'@'",null,null,null,null,null,null,null,null,null,
+        null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,
+        null,"'['",null,"']'","'^'",null,null,null,null,null,null,null,null,null,null,
+        null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,
+        null,null,"'{'","'|'","'}'","'~'",null,null,null,null,null,null,null,null,null,
+        null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,
+        null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,
+        null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,
+        null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,
+        null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,
+        null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,
+        null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,
+        null,null,null,null,null,null,null,null,null,"LiteralInteger","LiteralFloat64",
+        "LiteralChar","LiteralString","LiteralTwine","Identifier","VerbAssign",
+        "QuasiOpen","QuasiClose","DollarIdent","AtIdent","DollarOpen","AtOpen","URI",
+        "URIStart","BodyStartWord","BodyNextWord","VTableStartWord","VTableNextWord",
+        "BIND","CATCH","CLASS","DEF","DELEGATE","ELSE","ESCAPE","FINALLY","FOR","IF",
+        "IN","MATCH","META","PRAGMA","SWITCH","THUNK","TO","TRY","VAR","WHEN","WHILE",
+        "_","DEFINE","ON","SELECT","TYPEDEF","ABSTRACT","AN","AS","ATTRIBUTE","BE",
+        "BEGIN","BEHALF","BELIEF","BELIEVE","BELIEVES","CASE","CONST","CONSTRUCTOR",
+        "CONTEXT","DECLARE","DEFAULT","DEFMACRO","DEPRECATED","DISPATCH","DO",
+        "ENCAPSULATE","ENCAPSULATED","ENCAPSULATES","END","ENSURE","ENUM","EVENTUAL",
+        "EVENTUALLY","EXPORT","EXTENDS","FACET","FORALL","FUNCTION","GIVEN","HIDDEN",
+        "HIDES","IMPLEMENTS","INTERFACE","IS","KNOW","KNOWS","LAMBDA","LET","METHOD",
+        "METHODS","MODULE","NAMESPACE","NATIVE","OBEYS","OCTET","ONEWAY","PACKAGE",
+        "PRIVATE","PROTECTED","PUBLIC","RAISES","RELIANCE","RELIANT","RELIES","RELY",
+        "REVEAL","SAKE","SIGNED","STATIC","STRUCT","SUCHTHAT","SUPPORTS","SUSPECT",
+        "SUSPECTS","SYNCHRONIZED","THIS","THROWS","TRANSIENT","TRUNCATABLE","UNSIGNED",
+        "UNUM","USES","USING","UTF8","UTF16","VALUETYPE","VIRTUAL","VOLATILE","WSTRING",
+        "EOL","OpLAnd","OpLOr","OpSame","OpNSame","OpButNot","OpLeq","OpABA","OpGeq",
+        "OpThru","OpTill","OpAsl","OpAsr","OpFlrDiv","OpMod","OpPow","OpAss","OpAssAdd",
+        "OpAssAnd","OpAssAprxDiv","OpAssFlrDiv","OpAssAsl","OpAssAsr","OpAssRemdr",
+        "OpAssMod","OpAssMul","OpAssOr","OpAssPow","OpAssSub","OpAssXor","Send",
+        "OpWhen","MapsTo","MatchBind","MisMatch","Audit",
+    };
+
+    final static String yyrule[] = {
+        "$accept : start",
+        "start : br",
+        "start : topExpr",
+        "start : MatchBind pattern",
+        "define : DEF",
+        "define : DEFINE",
+        "topExpr : br topSeqs br",
+        "eExpr : br seqs br",
+        "topSeqs : topSeq",
+        "topSeqs : topSeqs EOLs topSeq",
+        "seqs : seq",
+        "seqs : seqs EOLs seq",
+        "topSeq : seq",
+        "seq : assigns",
+        "seq : assigns ';'",
+        "assigns : assign",
+        "assigns : assigns ';' assign",
+        "assigns : define noun",
+        "nAssign : assign",
+        "nAssign : plural",
+        "assign : cond",
+        "assign : cond OpAss assign",
+        "assign : cond assignop nAssign",
+        "assign : cond OpAssAsr assign",
+        "assign : cond VerbAssign parenArgs",
+        "assign : define pattern OpAss assign",
+        "assign : binder OpAss assign",
+        "assign : varNamer OpAss assign",
+        "cond : condAnd",
+        "cond : cond OpLOr condAnd",
+        "condAnd : comp",
+        "condAnd : condAnd OpLAnd comp",
+        "comp : order",
+        "comp : order OpSame order",
+        "comp : order OpNSame order",
+        "comp : order '&' nOrder",
+        "comp : order '|' nOrder",
+        "comp : order '^' nOrder",
+        "comp : order OpButNot nOrder",
+        "comp : order MatchBind pattern",
+        "comp : order MisMatch pattern",
+        "nOrder : order",
+        "nOrder : plural",
+        "order : interval",
+        "order : interval '<' interval",
+        "order : interval OpLeq interval",
+        "order : interval OpABA interval",
+        "order : interval OpGeq interval",
+        "order : interval '>' interval",
+        "interval : shift",
+        "interval : shift OpThru shift",
+        "interval : shift OpTill shift",
+        "shift : add",
+        "shift : shift OpAsl nAdd",
+        "shift : shift OpAsr add",
+        "nAdd : add",
+        "nAdd : plural",
+        "add : mult",
+        "add : add '+' nMult",
+        "add : add '-' nMult",
+        "nMult : mult",
+        "nMult : plural",
+        "mult : pow",
+        "mult : mult '*' nPow",
+        "mult : mult '/' nPow",
+        "mult : mult OpFlrDiv nPow",
+        "mult : mult '%' nPow",
+        "mult : mult OpMod nPow",
+        "nPow : pow",
+        "nPow : plural",
+        "pow : prefix",
+        "pow : prefix OpPow nPrefix",
+        "nPrefix : prefix",
+        "nPrefix : plural",
+        "prefix : postfix",
+        "prefix : '!' prim",
+        "prefix : '~' prim",
+        "prefix : '-' prim",
+        "prefix : '&' noun",
+        "postfix : call",
+        "postfix : metaExpr",
+        "postfix : postfix '[' argList ']'",
+        "postfix : postfix Send verb parenArgs",
+        "postfix : postfix Send parenArgs",
+        "postfix : postfix Send verb",
+        "postfix : postfix verb",
+        "postfix : postfix '.' ident",
+        "postfix : postfix '.' ident parenArgs",
+        "metaExpr : metaoid parenArgs",
+        "metaExpr : metaoid verb parenArgs",
+        "metaExpr : metaoid Send parenArgs",
+        "metaExpr : metaoid Send verb parenArgs",
+        "metaExpr : metaoid verb",
+        "metaExpr : metaoid Send verb",
+        "call : prim",
+        "call : call parenArgs",
+        "call : postfix verb parenArgs",
+        "prim : LiteralInteger",
+        "prim : LiteralFloat64",
+        "prim : LiteralChar",
+        "prim : LiteralString",
+        "prim : LiteralTwine",
+        "prim : nounExpr",
+        "prim : URI",
+        "prim : URIStart add '>'",
+        "prim : quasiParser quasiExpr",
+        "prim : parenExpr",
+        "prim : '[' argList ']'",
+        "prim : '[' maps ']'",
+        "prim : begin body",
+        "prim : begin ESCAPE pattern body",
+        "prim : begin WHILE parenExpr body",
+        "prim : begin SWITCH parenExpr caseList end",
+        "prim : begin TRY body catchList finallyClause",
+        "prim : forExpr",
+        "prim : whenExpr",
+        "prim : ifExpr",
+        "prim : macro",
+        "prim : DollarOpen LiteralInteger '}'",
+        "prim : '$' LiteralInteger",
+        "prim : '$' '$'",
+        "prim : AtOpen LiteralInteger '}'",
+        "prim : '@' LiteralInteger",
+        "prim : SELECT parenExpr caseList",
+        "prim : TYPEDEF oType",
+        "prim : object",
+        "object : defAudits vTable",
+        "object : defAudits begin funcHead body",
+        "object : begin THUNK body",
+        "object : CLASS classHead body",
+        "object : begin _ funcHead body",
+        "object : begin _ body",
+        "nounExpr : noun",
+        "parenExpr : '(' eExpr ')'",
+        "ifExpr : begin IF parenExpr body",
+        "ifExpr : begin IF parenExpr body ELSE ifExpr",
+        "ifExpr : begin IF parenExpr body ELSE begin body",
+        "forExpr : begin FOR iterPattern IN assign begin body end",
+        "whenExpr : WHEN whenHead body catches finallyClause",
+        "macro : BodyStartWord begin macroArg body restMacro",
+        "macro : VTableStartWord begin macroArg vTable end restMacro",
+        "$$1 :",
+        "restMacro : $$1 BodyNextWord begin macroArg body restMacro",
+        "restMacro : VTableNextWord begin macroArg vTable end restMacro",
+        "macroArg :",
+        "macroArg : parenExpr",
+        "macroArg : pattern",
+        "quasiParser :",
+        "quasiParser : ident",
+        "quasiParser : '(' eExpr ')'",
+        "quasiExpr : QuasiClose",
+        "quasiExpr : innerExprs QuasiClose",
+        "innerExprs : QuasiOpen innerExpr",
+        "innerExprs : innerExprs QuasiOpen innerExpr",
+        "innerExpr : DollarIdent",
+        "innerExpr : DollarOpen eExpr '}'",
+        "patternList : emptyBr",
+        "patternList : patterns br",
+        "patterns : pattern",
+        "patterns : patterns ',' br pattern",
+        "mapPatternList : mapPatterns br",
+        "mapPatterns : mapPattern",
+        "mapPatterns : mapPatterns ',' br mapPattern",
+        "iterPattern : pattern",
+        "iterPattern : mapPattern",
+        "mapPattern : pattern MapsTo pattern",
+        "mapPattern : MapsTo namer",
+        "pattern : listPatt",
+        "pattern : listPatt '?' order",
+        "pattern : metaoid parenExpr MapsTo pattern",
+        "listPatt : eqPatt",
+        "listPatt : '[' patternList ']'",
+        "listPatt : '[' patternList ']' '+' listPatt",
+        "listPatt : '[' mapPatternList ']'",
+        "listPatt : '[' mapPatternList ']' '|' listPatt",
+        "eqPatt : quasiPatt",
+        "eqPatt : OpSame prim",
+        "quasiPatt : namer",
+        "quasiPatt : quasiParser quasiPattern",
+        "quasiPattern : QuasiClose",
+        "quasiPattern : innerThings QuasiClose",
+        "innerThings : QuasiOpen innerThing",
+        "innerThings : innerThings QuasiOpen innerThing",
+        "innerThing : innerExpr",
+        "innerThing : innerPattern",
+        "innerPattern : AtIdent",
+        "innerPattern : AtOpen pattern '}'",
+        "namer : noun ':' order",
+        "namer : noun",
+        "namer : '&' noun",
+        "namer : _",
+        "namer : _ ':' order",
+        "namer : binder",
+        "namer : varNamer",
+        "namer : DollarOpen LiteralInteger '}'",
+        "namer : AtOpen LiteralInteger '}'",
+        "binder : BIND noun ':' order",
+        "binder : BIND noun",
+        "varNamer : VAR noun ':' order",
+        "varNamer : VAR noun",
+        "oName : noun",
+        "oName : _",
+        "oName : BIND noun",
+        "oName : VAR noun",
+        "oName : DollarOpen LiteralInteger '}'",
+        "oName : AtOpen LiteralInteger '}'",
+        "oName : litString",
+        "defName : define oName",
+        "defName : BIND noun",
+        "defName : VAR noun",
+        "audits : oName",
+        "audits : oName Audit nounExprs",
+        "defAudits : defName",
+        "defAudits : defName Audit nounExprs",
+        "nounExprs : nounExpr",
+        "nounExprs : nounExprs ',' br nounExpr",
+        "plural : '(' ')'",
+        "plural : '(' eExpr ',' args ')'",
+        "litString : LiteralString",
+        "litString : LiteralTwine",
+        "method : begin TO methHead body",
+        "method : begin TO verb OpAss assign end",
+        "method : begin ON methHead body",
+        "method : begin META parenExpr MapsTo parenExpr end",
+        "method : begin META parenExpr body",
+        "methHead : '(' patternList ')' resultGuard",
+        "methHead : verb '(' patternList ')' resultGuard",
+        "methHead : verb resultGuard",
+        "funcHead : '(' patternList ')' resultGuard",
+        "funcHead : verb '(' patternList ')' resultGuard",
+        "funcHead : verb resultGuard",
+        "classHead : audits begin '(' patternList ')' resultGuard",
+        "matcher : begin MATCH pattern body",
+        "delegator : begin DELEGATE body",
+        "resultGuard :",
+        "resultGuard : ':' order",
+        "whenArgs : '(' args ')'",
+        "whenHead : whenArgs OpWhen audits begin '(' patterns ')' resultGuard",
+        "whenHead : audits begin '(' whenClauses ')' resultGuard",
+        "whenClauses : whenClause",
+        "whenClauses : whenClauses ',' whenClause",
+        "whenClause : eExpr OpWhen pattern",
+        "br :",
+        "br : EOLs",
+        "EOLs : EOL",
+        "EOLs : EOLs EOL",
+        "emptyList :",
+        "emptyBr : br",
+        "parenArgs : '(' argList ')'",
+        "parenArgs : parenArgs object",
+        "argList : emptyBr",
+        "argList : args",
+        "args : eExpr",
+        "args : args ',' eExpr",
+        "maps : map",
+        "maps : maps ',' map",
+        "map : eExpr MapsTo eExpr",
+        "map : MapsTo nounExpr",
+        "verb : ident",
+        "noun : ident",
+        "ident : Identifier",
+        "ident : reserved",
+        "assignop : OpAssAdd",
+        "assignop : OpAssAnd",
+        "assignop : OpAssAprxDiv",
+        "assignop : OpAssFlrDiv",
+        "assignop : OpAssAsl",
+        "assignop : OpAssRemdr",
+        "assignop : OpAssMod",
+        "assignop : OpAssMul",
+        "assignop : OpAssOr",
+        "assignop : OpAssPow",
+        "assignop : OpAssSub",
+        "assignop : OpAssXor",
+        "body : '{' br '}' end",
+        "body : '{' br seqs br '}' end",
+        "caseList : '{' br matchList '}'",
+        "vTable : '{' br methodList vMatchList '}'",
+        "vTable : matcher",
+        "vTable : delegator",
+        "methodList : emptyList",
+        "methodList : methodList method br",
+        "vMatchList : matchList",
+        "vMatchList : matchList delegator br",
+        "matchList : emptyList",
+        "matchList : matchList matcher br",
+        "catchList : emptyList",
+        "catchList : catches",
+        "catches : catchList catchClause",
+        "catchClause : begin CATCH pattern body",
+        "finallyClause :",
+        "finallyClause : begin FINALLY body",
+        "oType : audits '{' br messageList '}'",
+        "oType : audits mType EOL",
+        "messageList : emptyList",
+        "messageList : DELEGATE br",
+        "messageList : messages br",
+        "messageList : messages EOLs DELEGATE br",
+        "messages : TO mType",
+        "messages : messages EOLs TO mType",
+        "messages : ON mType",
+        "messages : messages EOLs ON mType",
+        "mType : verb optType",
+        "mType : verb '(' pTypeList ')' optType",
+        "mType : '(' pTypeList ')' optType",
+        "pTypeList : br emptyList",
+        "pTypeList : br pTypes br",
+        "pTypes : pType",
+        "pTypes : pTypes ',' br pType",
+        "pType : noun optType",
+        "pType : _ optType",
+        "optType :",
+        "optType : ':' nounExpr",
+        "metaoid : META",
+        "metaoid : PRAGMA",
+        "begin :",
+        "end :",
+        "reserved : ABSTRACT",
+        "reserved : AN",
+        "reserved : AS",
+        "reserved : ATTRIBUTE",
+        "reserved : BE",
+        "reserved : BEGIN",
+        "reserved : BEHALF",
+        "reserved : BELIEF",
+        "reserved : BELIEVE",
+        "reserved : BELIEVES",
+        "reserved : CASE",
+        "reserved : CONST",
+        "reserved : CONSTRUCTOR",
+        "reserved : CONTEXT",
+        "reserved : DECLARE",
+        "reserved : DEFAULT",
+        "reserved : DEFMACRO",
+        "reserved : DEPRECATED",
+        "reserved : DISPATCH",
+        "reserved : DO",
+        "reserved : ENCAPSULATE",
+        "reserved : ENCAPSULATED",
+        "reserved : ENCAPSULATES",
+        "reserved : END",
+        "reserved : ENSURE",
+        "reserved : ENUM",
+        "reserved : EVENTUAL",
+        "reserved : EVENTUALLY",
+        "reserved : EXPORT",
+        "reserved : EXTENDS",
+        "reserved : FACET",
+        "reserved : FORALL",
+        "reserved : FUNCTION",
+        "reserved : GIVEN",
+        "reserved : HIDDEN",
+        "reserved : HIDES",
+        "reserved : IMPLEMENTS",
+        "reserved : INTERFACE",
+        "reserved : IS",
+        "reserved : KNOW",
+        "reserved : KNOWS",
+        "reserved : LAMBDA",
+        "reserved : LET",
+        "reserved : METHOD",
+        "reserved : METHODS",
+        "reserved : MODULE",
+        "reserved : NAMESPACE",
+        "reserved : NATIVE",
+        "reserved : OBEYS",
+        "reserved : OCTET",
+        "reserved : ONEWAY",
+        "reserved : PACKAGE",
+        "reserved : PRIVATE",
+        "reserved : PROTECTED",
+        "reserved : PUBLIC",
+        "reserved : RAISES",
+        "reserved : RELIANCE",
+        "reserved : RELIANT",
+        "reserved : RELIES",
+        "reserved : RELY",
+        "reserved : REVEAL",
+        "reserved : SAKE",
+        "reserved : SIGNED",
+        "reserved : STATIC",
+        "reserved : STRUCT",
+        "reserved : SUCHTHAT",
+        "reserved : SUPPORTS",
+        "reserved : SUSPECT",
+        "reserved : SUSPECTS",
+        "reserved : SYNCHRONIZED",
+        "reserved : THIS",
+        "reserved : THROWS",
+        "reserved : TRANSIENT",
+        "reserved : TRUNCATABLE",
+        "reserved : UNSIGNED",
+        "reserved : UNUM",
+        "reserved : USES",
+        "reserved : USING",
+        "reserved : UTF8",
+        "reserved : UTF16",
+        "reserved : VALUETYPE",
+        "reserved : VIRTUAL",
+        "reserved : VOLATILE",
+        "reserved : WSTRING",
+    };
 
+//#line 1183 "e.y"
 
-/** contains all the tokens after yylval */
-private ELexer myLexer;
-
-/** 
- * Do we escape after parsing only one expression, or do we parse the
- * entire input?
- */
-private boolean myOnlyOneExprFlag;
-
-/** how we exit yacc logic */
-private Ejector myEscape;
-
-
-/**
- *
- */
-public EParser(ELexer lexer) {
-    this(DefaultProps, lexer, false, false);
-}
+    /**
+     *
+     */
+    static public final StaticMaker EParserMaker =
+      StaticMaker.make(EParser.class);
+
+    /**
+     * caches previous simple parses (as is used for quasi-parsing)
+     */
+    static private IdentityCacheTable OurCache =
+      new IdentityCacheTable(ENode.class, 100);
+
+    /**
+     *
+     */
+    static private final ConstMap DefaultProps =
+      ConstMap.fromProperties(System.getProperties());
+
+
+    /** contains all the tokens after yylval */
+    private ELexer myLexer;
+
+    /**
+     * Do we escape after parsing only one expression, or do we parse the
+     * entire input?
+     */
+    private boolean myOnlyOneExprFlag;
+
+    /** how we exit yacc logic */
+    private Ejector myEscape;
+
+
+    /**
+     *
+     */
+    public EParser(ELexer lexer) {
+        this(DefaultProps, lexer, false, false);
+    }
 
-/**
- *
- */
-public EParser(ConstMap props, ELexer lexer) {
-    this(props, lexer, false, false);
-}
+    /**
+     *
+     */
+    public EParser(ConstMap props, ELexer lexer) {
+        this(props, lexer, false, false);
+    }
 
-/**
- *
- */
-public EParser(ConstMap props,
-               ELexer lexer,
-               boolean debugFlag,
-               boolean onlyOneExprFlag)
-{
-    super(props); //XXX must really be props
-    initTables();
-    myLexer = lexer;
-    yydebug = debugFlag;
-    myOnlyOneExprFlag = onlyOneExprFlag;
-    myEscape = new Ejector();
-}
+    /**
+     *
+     */
+    public EParser(ConstMap props,
+                   ELexer lexer,
+                   boolean debugFlag,
+                   boolean onlyOneExprFlag) {
+        super(props); //XXX must really be props
+        initTables();
+        myLexer = lexer;
+        yydebug = debugFlag;
+        myOnlyOneExprFlag = onlyOneExprFlag;
+        myEscape = new Ejector();
+    }
 
-/**
- * For use as from E as a quasi-literal parser.
- *
- * @param sourceCode The source code itself, not the location of
- * the source code
- */
-static public ENode valueMaker(Twine sourceCode) {
-    return run(sourceCode, true);
-}
+    /**
+     * For use as from E as a quasi-literal parser.
+     *
+     * @param sourceCode The source code itself, not the location of
+     * the source code
+     */
+    static public ENode valueMaker(Twine sourceCode) {
+        return run(sourceCode, true);
+    }
 
-/**
- * For use from E as a quasi-pattern parser.
- *
- * @param sourceCode The source code itself, not the location of
- * the source code
- */
-static public ENode matchMaker(Twine sourceCode) {
-    return run(sourceCode, true);
-}
+    /**
+     * For use from E as a quasi-pattern parser.
+     *
+     * @param sourceCode The source code itself, not the location of
+     * the source code
+     */
+    static public ENode matchMaker(Twine sourceCode) {
+        return run(sourceCode, true);
+    }
 
 
-/**
- * For simple string -> expression parsing, especially for use from E
- *
- * @param sourceCode The source code itself, not the location of
- * the source code
- */
-static public ENode run(Twine sourceCode) {
-    return run(sourceCode, false);
-}
+    /**
+     * For simple string -> expression parsing, especially for use from E
+     *
+     * @param sourceCode The source code itself, not the location of
+     * the source code
+     */
+    static public ENode run(Twine sourceCode) {
+        return run(sourceCode, false);
+    }
 
-/**
- *
- */
-static public ENode run(Twine sourceCode, boolean quasiFlag) {
-    return run(sourceCode, quasiFlag, DefaultProps);
-}
+    /**
+     *
+     */
+    static public ENode run(Twine sourceCode, boolean quasiFlag) {
+        return run(sourceCode, quasiFlag, DefaultProps);
+    }
 
-/**
- *
- */
-static public ENode run(Twine sourceCode, boolean quasiFlag, ConstMap props) {
-    ENode result = (ENode)OurCache.get(sourceCode, null);
-    if (null == result) {
-        try {
-            ELexer lexer = ELexer.make(sourceCode,
-                                       quasiFlag,
-                                       Interp.testProp(props,
-                                                       "e.enable.notabs"));
-            EParser parser = new EParser(props, lexer, false, false);
-            result = parser.parse();
+    /**
+     *
+     */
+    static public ENode run(Twine sourceCode, boolean quasiFlag, ConstMap props) {
+        ENode result = (ENode)OurCache.get(sourceCode, null);
+        if (null == result) {
+            try {
+                ELexer lexer = ELexer.make(sourceCode,
+                                           quasiFlag,
+                                           Interp.testProp(props,
+                                                           "e.enable.notabs"));
+                EParser parser = new EParser(props, lexer, false, false);
+                result = parser.parse();
 
-        } catch (IOException iox) {
-            throw ThrowableSugar.backtrace(iox, "parsing a string?!");
+            } catch (IOException iox) {
+                throw ThrowableSugar.backtrace(iox, "parsing a string?!");
+            }
+            OurCache.put(sourceCode, result);
         }
-        OurCache.put(sourceCode, result);
-    }
-    return result;
-}
-
-/**
- * If the input is empty, returns the null expression e`null`, rather
- * than null. 
- */
-public ENode parse() {
-    ENode result = optParse();
-    if (result == null) {
-        return NULL;
-    } else {
         return result;
     }
-}
 
-/**
- *
- */
-public ENode optParse() {
-    try {
-        if (yyparse() == 0) {
-            yyerror("internal: success should eject rather than return");
+    /**
+     * If the input is empty, returns the null expression e`null`, rather
+     * than null.
+     */
+    public ENode parse() {
+        ENode result = optParse();
+        if (result == null) {
+            return NULL;
         } else {
-            yyerror("couldn't parse expression");
+            return result;
         }
-    } catch (Throwable t) {
-        return (ENode)myEscape.result(t);
-    } finally {
-        myEscape.disable();
     }
-    return null; //keep the compiler happy
-}
 
-/**
- *
- */
-private Object oneExpr(Object expr) {
-    if (myOnlyOneExprFlag) {
-        myEscape.run(expr);
+    /**
+     *
+     */
+    public ENode optParse() {
+        try {
+            if (yyparse() == 0) {
+                yyerror("internal: success should eject rather than return");
+            } else {
+                yyerror("couldn't parse expression");
+            }
+        } catch (Throwable t) {
+            return (ENode)myEscape.result(t);
+        } finally {
+            myEscape.disable();
+        }
+        return null; //keep the compiler happy
     }
-    return expr;
-}
 
-/**
- *
- */
-private int yylex() {
-    AstroToken token = null;
-    try {
-        token = myLexer.nextToken();
-    } catch (IOException ex) {
-        yyerror("io: " + ex);
+    /**
+     *
+     */
+    private Object oneExpr(Object expr) {
+        if (myOnlyOneExprFlag) {
+            myEscape.run(expr);
+        }
+        return expr;
     }
-    yylval = token;
-    return token.getType();
-}
+
+    /**
+     *
+     */
+    private int yylex() {
+        AstroToken token = null;
+        try {
+            token = myLexer.nextToken();
+        } catch (IOException ex) {
+            yyerror("io: " + ex);
+        }
+        yylval = token;
+        return token.getType();
+    }
 
-/**
- *
- */
-private void yyerror(String s) throws SyntaxException {
-    int ttype = ((AstroToken)yylval).getType();
-    if (EParser.EOFTOK == ttype && "syntax error".equals(s)) {
-        myLexer.needMore("Unexpected EOF");
-    } else {
-        syntaxError(s);
+    /**
+     *
+     */
+    private void yyerror(String s) throws SyntaxException {
+        int ttype = ((AstroToken)yylval).getType();
+        if (EParser.EOFTOK == ttype && "syntax error".equals(s)) {
+            myLexer.needMore("Unexpected EOF");
+        } else {
+            syntaxError(s);
+        }
     }
-}
 
-/**
- *
- */
-public void setSource(Twine newSource) {
-    myLexer.setSource(newSource);
-}
+    /**
+     *
+     */
+    public void setSource(Twine newSource) {
+        myLexer.setSource(newSource);
+    }
 
-/**
- *
- */
-public boolean isEndOfFile() {
-    return myLexer.isEndOfFile();
-}
+    /**
+     *
+     */
+    public boolean isEndOfFile() {
+        return myLexer.isEndOfFile();
+    }
 
-/**
- * Overrides syntaxError in EBuilder
- */
+    /**
+     * Overrides syntaxError in EBuilder
+     */
 /*package*/ void syntaxError(String msg) throws SyntaxException {
     myLexer.syntaxError(msg);
 }
 
 
-/**
- *
- */
-private boolean isTokenKind(Object tok, int[] members) {
-    if (! (tok instanceof AstroToken)) {
-        return false;
-    }
-    int ttype = ((AstroToken)tok).getType();
-    for (int i = 0; i < members.length; i++) {
-        if (ttype == members[i]) {
-            return true;
+    /**
+     *
+     */
+    private boolean isTokenKind(Object tok, int[] members) {
+        if (!(tok instanceof AstroToken)) {
+            return false;
         }
+        int ttype = ((AstroToken)tok).getType();
+        for (int i = 0; i < members.length; i++) {
+            if (ttype == members[i]) {
+                return true;
+            }
+        }
+        return false;
     }
-    return false;
-}
 
-static private final int[] LiteralTypes = {
-    LiteralInteger,
-    LiteralFloat64,
-    LiteralChar,
-    LiteralString,
-    LiteralTwine
-};
-
-/**
- *
- */
+    static private final int[] LiteralTypes = {
+        LiteralInteger,
+        LiteralFloat64,
+        LiteralChar,
+        LiteralString,
+        LiteralTwine
+    };
+
+    /**
+     *
+     */
 /*package*/ boolean isLiteralToken(Object tok) {
     return isTokenKind(tok, LiteralTypes);
 }
 
-static private final int[] QuasiTypes = {
-    QuasiOpen,
-    QuasiClose
-};
-
-/**
- *
- */
+    static private final int[] QuasiTypes = {
+        QuasiOpen,
+        QuasiClose
+    };
+
+    /**
+     *
+     */
 /*package*/ boolean isQuasiPart(Object tok) {
     return isTokenKind(tok, QuasiTypes);
 }
 
 
-/*********************************/
+    /*********************************/
 
 
-/**
- *
- */
-static private String[] TheTokens = new String[yyname.length];
-
-/** Not provided for us */
-static /*package*/ final short EOFTOK = 0;
-
-/**
- * For all the names below, if the name == name.toLowerCase(), then
- * the name must be a keyword.  Else it must not be a keyword.  The
- * names themselves must be legal Functor identifiers.
- */
-static {
-    System.arraycopy(yyname, 0, TheTokens, 0, yyname.length);
-
-    TheTokens[EOFTOK]           = "EOFTOK";
-    /* The magical end-of-line token, not considered whitespace */
-    TheTokens[EOL]              = "EOL";
-
-    TheTokens[LiteralInteger]   = "LiteralInteger";
-    TheTokens[LiteralFloat64]   = "LiteralFloat64";
-    TheTokens[LiteralChar]      = "LiteralChar";
-    TheTokens[LiteralString]    = "LiteralString";
-    TheTokens[LiteralTwine]     = "LiteralTwine";
-
-    TheTokens[Identifier]       = "Identifier";
-    TheTokens[VerbAssign]       = "VerbAssign";
-    TheTokens[QuasiOpen]        = "QuasiOpen";
-    TheTokens[QuasiClose]       = "QuasiClose";
-    TheTokens[DollarIdent]      = "DollarIdent";
-    TheTokens[AtIdent]          = "AtIdent";
-    TheTokens[DollarOpen]       = "DollarOpen";
-    TheTokens[AtOpen]           = "AtOpen";
-    TheTokens[URI]              = "URI";
-    TheTokens[URIStart]         = "URIStart";
-    TheTokens[BodyStartWord]    = "BodyStartWord";
-    TheTokens[BodyNextWord]     = "BodyNextWord";
-    TheTokens[VTableStartWord]  = "VTableStartWord";
-    TheTokens[VTableNextWord]   = "VTableNextWord";
-
-    /* Keywords */
-    TheTokens[BIND]             = "bind";
-    TheTokens[CATCH]            = "catch";
-    TheTokens[CLASS]            = "class";
-    TheTokens[DEF]              = "def";
-    TheTokens[DELEGATE]         = "delegate";
-    TheTokens[ELSE]             = "else";
-    TheTokens[ESCAPE]           = "escape";
-    TheTokens[FINALLY]          = "finally";
-    TheTokens[FOR]              = "for";
-    TheTokens[IF]               = "if";
-    TheTokens[IN]               = "in";
-    TheTokens[MATCH]            = "match";
-    TheTokens[META]             = "meta";
-    TheTokens[PRAGMA]           = "pragma";
-    TheTokens[SWITCH]           = "switch";
-    TheTokens[THUNK]            = "thunk";
-    TheTokens[TO]               = "to";
-    TheTokens[TRY]              = "try";
-    TheTokens[VAR]              = "var";
-    TheTokens[WHEN]             = "when";
-    TheTokens[WHILE]            = "while";
-    TheTokens[_]                = "_";
-
-    /* pseudo-reserved keywords */
-    TheTokens[DEFINE]           = "define";
-    TheTokens[ON]               = "on";
-    TheTokens[SELECT]           = "select";
-    TheTokens[TYPEDEF]          = "typedef";
-
-    /* reserved keywords */
-    TheTokens[ABSTRACT]         = "abstract";
-    TheTokens[AN]               = "an";
-    TheTokens[AS]               = "as";
-    TheTokens[ATTRIBUTE]        = "attribute";
-    TheTokens[BE]               = "be";
-    TheTokens[BEGIN]            = "begin";
-    TheTokens[BEHALF]           = "behalf";
-    TheTokens[BELIEF]           = "belief";
-    TheTokens[BELIEVE]          = "believe";
-    TheTokens[BELIEVES]         = "believes";
-    TheTokens[CASE]             = "case";
-    TheTokens[CONST]            = "const";
-    TheTokens[CONSTRUCTOR]      = "constructor";
-    TheTokens[CONTEXT]          = "context";
-    TheTokens[DECLARE]          = "declare";
-    TheTokens[DEFAULT]          = "default";
-    TheTokens[DEFMACRO]         = "defmacro";
-    TheTokens[DEPRECATED]       = "deprecated";
-    TheTokens[DISPATCH]         = "dispatch";
-    TheTokens[DO]               = "do";
-    TheTokens[ENCAPSULATE]      = "encapsulate";
-    TheTokens[ENCAPSULATED]     = "encapsulated";
-    TheTokens[ENCAPSULATES]     = "encapsulates";
-    TheTokens[END]              = "end";
-    TheTokens[ENSURE]           = "ensure";
-    TheTokens[ENUM]             = "enum";
-    TheTokens[EVENTUAL]         = "eventual";
-    TheTokens[EVENTUALLY]       = "eventually";
-    TheTokens[EXPORT]           = "export";
-    TheTokens[EXTENDS]          = "extends";
-    TheTokens[FACET]            = "facet";
-    TheTokens[FORALL]           = "forall";
-    TheTokens[FUNCTION]         = "function";
-    TheTokens[GIVEN]            = "given";
-    TheTokens[HIDDEN]           = "hidden";
-    TheTokens[HIDES]            = "hides";
-    TheTokens[IMPLEMENTS]       = "implements";
-    TheTokens[INTERFACE]        = "interface";
-    TheTokens[IS]               = "is";
-    TheTokens[KNOW]             = "know";
-    TheTokens[KNOWS]            = "knows";
-    TheTokens[LAMBDA]           = "lambda";
-    TheTokens[LET]              = "let";
-    TheTokens[METHOD]           = "method";
-    TheTokens[METHODS]          = "methods";
-    TheTokens[MODULE]           = "module";
-    TheTokens[NAMESPACE]        = "namespace";
-    TheTokens[NATIVE]           = "native";
-    TheTokens[OBEYS]            = "obeys";
-    TheTokens[OCTET]            = "octet";
-    TheTokens[ONEWAY]           = "oneway";
-    TheTokens[PACKAGE]          = "package";
-    TheTokens[PRIVATE]          = "private";
-    TheTokens[PROTECTED]        = "protected";
-    TheTokens[PUBLIC]           = "public";
-    TheTokens[RAISES]           = "raises";
-    TheTokens[RELIANCE]         = "reliance";
-    TheTokens[RELIANT]          = "reliant";
-    TheTokens[RELIES]           = "relies";
-    TheTokens[RELY]             = "rely";
-    TheTokens[REVEAL]           = "reveal";
-    TheTokens[SAKE]             = "sake";
-    TheTokens[SIGNED]           = "signed";
-    TheTokens[STATIC]           = "static";
-    TheTokens[STRUCT]           = "struct";
-    TheTokens[SUCHTHAT]         = "suchthat";
-    TheTokens[SUPPORTS]         = "supports";
-    TheTokens[SUSPECT]          = "suspect";
-    TheTokens[SUSPECTS]         = "suspects";
-    TheTokens[SYNCHRONIZED]     = "synchronized";
-    TheTokens[THIS]             = "this";
-    TheTokens[THROWS]           = "throws";
-    TheTokens[TRANSIENT]        = "transient";
-    TheTokens[TRUNCATABLE]      = "truncatable";
-    TheTokens[UNSIGNED]         = "unsigned";
-    TheTokens[UNUM]             = "unum";
-    TheTokens[USES]             = "uses";
-    TheTokens[USING]            = "using";
-    TheTokens[UTF8]             = "utf8";
-    TheTokens[UTF16]            = "utf16";
-    TheTokens[VALUETYPE]        = "valuetype";
-    TheTokens[VIRTUAL]          = "virtual";
-    TheTokens[VOLATILE]         = "volatile";
-    TheTokens[WSTRING]          = "wstring";
-
-    /* Multi-Character Operators */
-    TheTokens[OpLAnd]           = "OpLAnd";
-    TheTokens[OpLOr]            = "OpLOr";
-    TheTokens[OpSame]           = "OpSame";
-    TheTokens[OpNSame]          = "OpNSame";
-    TheTokens[OpButNot]         = "OpButNot";
-    TheTokens[OpLeq]            = "OpLeq";
-    TheTokens[OpABA]            = "OpABA";
-    TheTokens[OpGeq]            = "OpGeq";
-    TheTokens[OpThru]           = "OpThru";
-    TheTokens[OpTill]           = "OpTill";
-    TheTokens[OpAsl]            = "OpAsl";
-    TheTokens[OpAsr]            = "OpAsr";
-    TheTokens[OpFlrDiv]         = "OpFlrDiv";
-    TheTokens[OpMod]            = "OpMod";
-    TheTokens[OpPow]            = "OpPow";
-
-    TheTokens[OpAss]            = "OpAss";
-    TheTokens[OpAssAdd]         = "OpAssAdd";
-    TheTokens[OpAssAnd]         = "OpAssAnd";
-    TheTokens[OpAssAprxDiv]     = "OpAssAprxDiv";
-    TheTokens[OpAssFlrDiv]      = "OpAssFlrDiv";
-    TheTokens[OpAssAsl]         = "OpAssAsl";
-    TheTokens[OpAssAsr]         = "OpAssAsr";
-    TheTokens[OpAssRemdr]       = "OpAssRemdr";
-    TheTokens[OpAssMod]         = "OpAssMod";
-    TheTokens[OpAssMul]         = "OpAssMul";
-    TheTokens[OpAssOr]          = "OpAssOr";
-    TheTokens[OpAssPow]         = "OpAssPow";
-    TheTokens[OpAssSub]         = "OpAssSub";
-    TheTokens[OpAssXor]         = "OpAssXor";
-
-    /* Other funky tokens */
-    TheTokens[Send]             = "Send";
-    TheTokens[MapsTo]           = "MapsTo";
-    TheTokens[MatchBind]        = "MatchBind";
-    TheTokens[MisMatch]         = "MisMatch";
-    TheTokens[Audit]            = "Audit";
-}
+    /**
+     *
+     */
+    static private String[] TheTokens = new String[yyname.length];
+
+    /** Not provided for us */
+    static /*package*/ final short EOFTOK = 0;
+
+    /**
+     * For all the names below, if the name == name.toLowerCase(), then
+     * the name must be a keyword.  Else it must not be a keyword.  The
+     * names themselves must be legal Functor identifiers.
+     */
+    static {
+        System.arraycopy(yyname, 0, TheTokens, 0, yyname.length);
+
+        TheTokens[EOFTOK] = "EOFTOK";
+        /* The magical end-of-line token, not considered whitespace */
+        TheTokens[EOL] = "EOL";
+
+        TheTokens[LiteralInteger] = "LiteralInteger";
+        TheTokens[LiteralFloat64] = "LiteralFloat64";
+        TheTokens[LiteralChar] = "LiteralChar";
+        TheTokens[LiteralString] = "LiteralString";
+        TheTokens[LiteralTwine] = "LiteralTwine";
+
+        TheTokens[Identifier] = "Identifier";
+        TheTokens[VerbAssign] = "VerbAssign";
+        TheTokens[QuasiOpen] = "QuasiOpen";
+        TheTokens[QuasiClose] = "QuasiClose";
+        TheTokens[DollarIdent] = "DollarIdent";
+        TheTokens[AtIdent] = "AtIdent";
+        TheTokens[DollarOpen] = "DollarOpen";
+        TheTokens[AtOpen] = "AtOpen";
+        TheTokens[URI] = "URI";
+        TheTokens[URIStart] = "URIStart";
+        TheTokens[BodyStartWord] = "BodyStartWord";
+        TheTokens[BodyNextWord] = "BodyNextWord";
+        TheTokens[VTableStartWord] = "VTableStartWord";
+        TheTokens[VTableNextWord] = "VTableNextWord";
+
+        /* Keywords */
+        TheTokens[BIND] = "bind";
+        TheTokens[CATCH] = "catch";
+        TheTokens[CLASS] = "class";
+        TheTokens[DEF] = "def";
+        TheTokens[DELEGATE] = "delegate";
+        TheTokens[ELSE] = "else";
+        TheTokens[ESCAPE] = "escape";
+        TheTokens[FINALLY] = "finally";
+        TheTokens[FOR] = "for";
+        TheTokens[IF] = "if";
+        TheTokens[IN] = "in";
+        TheTokens[MATCH] = "match";
+        TheTokens[META] = "meta";
+        TheTokens[PRAGMA] = "pragma";
+        TheTokens[SWITCH] = "switch";
+        TheTokens[THUNK] = "thunk";
+        TheTokens[TO] = "to";
+        TheTokens[TRY] = "try";
+        TheTokens[VAR] = "var";
+        TheTokens[WHEN] = "when";
+        TheTokens[WHILE] = "while";
+        TheTokens[_] = "_";
+
+        /* pseudo-reserved keywords */
+        TheTokens[DEFINE] = "define";
+        TheTokens[ON] = "on";
+        TheTokens[SELECT] = "select";
+        TheTokens[TYPEDEF] = "typedef";
+
+        /* reserved keywords */
+        TheTokens[ABSTRACT] = "abstract";
+        TheTokens[AN] = "an";
+        TheTokens[AS] = "as";
+        TheTokens[ATTRIBUTE] = "attribute";
+        TheTokens[BE] = "be";
+        TheTokens[BEGIN] = "begin";
+        TheTokens[BEHALF] = "behalf";
+        TheTokens[BELIEF] = "belief";
+        TheTokens[BELIEVE] = "believe";
+        TheTokens[BELIEVES] = "believes";
+        TheTokens[CASE] = "case";
+        TheTokens[CONST] = "const";
+        TheTokens[CONSTRUCTOR] = "constructor";
+        TheTokens[CONTEXT] = "context";
+        TheTokens[DECLARE] = "declare";
+        TheTokens[DEFAULT] = "default";
+        TheTokens[DEFMACRO] = "defmacro";
+        TheTokens[DEPRECATED] = "deprecated";
+        TheTokens[DISPATCH] = "dispatch";
+        TheTokens[DO] = "do";
+        TheTokens[ENCAPSULATE] = "encapsulate";
+        TheTokens[ENCAPSULATED] = "encapsulated";
+        TheTokens[ENCAPSULATES] = "encapsulates";
+        TheTokens[END] = "end";
+        TheTokens[ENSURE] = "ensure";
+        TheTokens[ENUM] = "enum";
+        TheTokens[EVENTUAL] = "eventual";
+        TheTokens[EVENTUALLY] = "eventually";
+        TheTokens[EXPORT] = "export";
+        TheTokens[EXTENDS] = "extends";
+        TheTokens[FACET] = "facet";
+        TheTokens[FORALL] = "forall";
+        TheTokens[FUNCTION] = "function";
+        TheTokens[GIVEN] = "given";
+        TheTokens[HIDDEN] = "hidden";
+        TheTokens[HIDES] = "hides";
+        TheTokens[IMPLEMENTS] = "implements";
+        TheTokens[INTERFACE] = "interface";
+        TheTokens[IS] = "is";
+        TheTokens[KNOW] = "know";
+        TheTokens[KNOWS] = "knows";
+        TheTokens[LAMBDA] = "lambda";
+        TheTokens[LET] = "let";
+        TheTokens[METHOD] = "method";
+        TheTokens[METHODS] = "methods";
+        TheTokens[MODULE] = "module";
+        TheTokens[NAMESPACE] = "namespace";
+        TheTokens[NATIVE] = "native";
+        TheTokens[OBEYS] = "obeys";
+        TheTokens[OCTET] = "octet";
+        TheTokens[ONEWAY] = "oneway";
+        TheTokens[PACKAGE] = "package";
+        TheTokens[PRIVATE] = "private";
+        TheTokens[PROTECTED] = "protected";
+        TheTokens[PUBLIC] = "public";
+        TheTokens[RAISES] = "raises";
+        TheTokens[RELIANCE] = "reliance";
+        TheTokens[RELIANT] = "reliant";
+        TheTokens[RELIES] = "relies";
+        TheTokens[RELY] = "rely";
+        TheTokens[REVEAL] = "reveal";
+        TheTokens[SAKE] = "sake";
+        TheTokens[SIGNED] = "signed";
+        TheTokens[STATIC] = "static";
+        TheTokens[STRUCT] = "struct";
+        TheTokens[SUCHTHAT] = "suchthat";
+        TheTokens[SUPPORTS] = "supports";
+        TheTokens[SUSPECT] = "suspect";
+        TheTokens[SUSPECTS] = "suspects";
+        TheTokens[SYNCHRONIZED] = "synchronized";
+        TheTokens[THIS] = "this";
+        TheTokens[THROWS] = "throws";
+        TheTokens[TRANSIENT] = "transient";
+        TheTokens[TRUNCATABLE] = "truncatable";
+        TheTokens[UNSIGNED] = "unsigned";
+        TheTokens[UNUM] = "unum";
+        TheTokens[USES] = "uses";
+        TheTokens[USING] = "using";
+        TheTokens[UTF8] = "utf8";
+        TheTokens[UTF16] = "utf16";
+        TheTokens[VALUETYPE] = "valuetype";
+        TheTokens[VIRTUAL] = "virtual";
+        TheTokens[VOLATILE] = "volatile";
+        TheTokens[WSTRING] = "wstring";
+
+        /* Multi-Character Operators */
+        TheTokens[OpLAnd] = "OpLAnd";
+        TheTokens[OpLOr] = "OpLOr";
+        TheTokens[OpSame] = "OpSame";
+        TheTokens[OpNSame] = "OpNSame";
+        TheTokens[OpButNot] = "OpButNot";
+        TheTokens[OpLeq] = "OpLeq";
+        TheTokens[OpABA] = "OpABA";
+        TheTokens[OpGeq] = "OpGeq";
+        TheTokens[OpThru] = "OpThru";
+        TheTokens[OpTill] = "OpTill";
+        TheTokens[OpAsl] = "OpAsl";
+        TheTokens[OpAsr] = "OpAsr";
+        TheTokens[OpFlrDiv] = "OpFlrDiv";
+        TheTokens[OpMod] = "OpMod";
+        TheTokens[OpPow] = "OpPow";
+
+        TheTokens[OpAss] = "OpAss";
+        TheTokens[OpAssAdd] = "OpAssAdd";
+        TheTokens[OpAssAnd] = "OpAssAnd";
+        TheTokens[OpAssAprxDiv] = "OpAssAprxDiv";
+        TheTokens[OpAssFlrDiv] = "OpAssFlrDiv";
+        TheTokens[OpAssAsl] = "OpAssAsl";
+        TheTokens[OpAssAsr] = "OpAssAsr";
+        TheTokens[OpAssRemdr] = "OpAssRemdr";
+        TheTokens[OpAssMod] = "OpAssMod";
+        TheTokens[OpAssMul] = "OpAssMul";
+        TheTokens[OpAssOr] = "OpAssOr";
+        TheTokens[OpAssPow] = "OpAssPow";
+        TheTokens[OpAssSub] = "OpAssSub";
+        TheTokens[OpAssXor] = "OpAssXor";
+
+        /* Other funky tokens */
+        TheTokens[Send] = "Send";
+        TheTokens[MapsTo] = "MapsTo";
+        TheTokens[MatchBind] = "MatchBind";
+        TheTokens[MisMatch] = "MisMatch";
+        TheTokens[Audit] = "Audit";
+    }
 
-/**
- *
- */
-static public ConstList getTokenNames() {
-    return ConstList.fromArray(TheTokens);
-}
+    /**
+     *
+     */
+    static public ConstList getTokenNames() {
+        return ConstList.fromArray(TheTokens);
+    }
 
-/**
- *
- */
-static private IntTable TheTokenTable = null;
-
-/**
- *
- */
-static private IntTable getTokenTable() {
-    if (null == TheTokenTable) {
-        TheTokenTable = new IntTable(String.class);
-        for (int i = 0; i < TheTokens.length; i++) {
-            if (TheTokens[i] != null) {
-                TheTokenTable.putInt(TheTokens[i], i, true);
+    /**
+     *
+     */
+    static private IntTable TheTokenTable = null;
+
+    /**
+     *
+     */
+    static private IntTable getTokenTable() {
+        if (null == TheTokenTable) {
+            TheTokenTable = new IntTable(String.class);
+            for (int i = 0; i < TheTokens.length; i++) {
+                if (TheTokens[i] != null) {
+                    TheTokenTable.putInt(TheTokens[i], i, true);
+                }
             }
         }
+        return TheTokenTable;
     }
-    return TheTokenTable;
-}
 
-/**
- * If 'name' is a keyword, return it's token type code, else -1.
- * <p>
- * Note that E keywords are case insensitive, so 'name' is first
- * toLowerCase()d. 
- */
-static public int optKeywordType(String name) {
-    name = name.toLowerCase();
-    return getTokenTable().getInt(name, -1);
-}
+    /**
+     * If 'name' is a keyword, return it's token type code, else -1.
+     * <p>
+     * Note that E keywords are case insensitive, so 'name' is first
+     * toLowerCase()d.
+     */
+    static public int optKeywordType(String name) {
+        name = name.toLowerCase();
+        return getTokenTable().getInt(name, -1);
+    }
 
-/**
- *
- */
-static public ConstMap getTokenMap() {
-    return getTokenTable().snapshot();
-}
+    /**
+     *
+     */
+    static public ConstMap getTokenMap() {
+        return getTokenTable().snapshot();
+    }
 
-/**
- * These are the tokens that may appear at the end of a line, in which
- * case the next line is a (to be indented) continuation of the
- * expression. 
- * <p>
- * Note that &gt; isn't on the list because of its role in closing a
- * calculated URI expression.
- */
-static private final int[] TheContinuerOps = {
-    '!',
-    '%',
-    '&',
-    '*',
-    '+',
-    '-',
-    '/',
-    ':',
-    '<',
-    '?',
-    '^',
-    '|',
-    '~',
-    Audit,              // ::
-    MapsTo,             // =>
-    MatchBind,          // =~
-    MisMatch,           // !~
-    OpABA,              // <=>
-    OpAsl,              // <<
-    OpAsr,              // >>
-    OpAss,              // :=
-    OpAssAdd,           // +=
-    OpAssAnd,           // &=
-    OpAssAprxDiv,       // /=
-    OpAssAsl,           // <<=
-    OpAssAsr,           // >>=
-    OpAssFlrDiv,        // _/=
-    OpAssMod,           // %%=
-    OpAssMul,           // *=
-    OpAssOr,            // |=
-    OpAssPow,           // **=
-    OpAssRemdr,         // %=
-    OpAssSub,           // -=
-    OpAssXor,           // ^=
-    OpButNot,           // &!
-    OpFlrDiv,           // _/
-    OpGeq,              // >=
-    OpLAnd,             // &&
-    OpLOr,              // ||
-    OpLeq,              // <=
-    OpMod,              // %%
-    OpNSame,            // !=
-    OpPow,              // **
-    OpSame,             // ==
-    OpThru,             // ..
-    OpTill,             // ..!
-    OpWhen,             // ->
-    Send                // <-
-};
-
-/**
- * TheContinuers[tokenType] says whether this is a continuation
- * operator.
- */
-static private boolean[] TheContinuers = new boolean[yyname.length];
-
-static {
-    //this initialization counts on the initial allocation
-    //initializing the members to false
+    /**
+     * These are the tokens that may appear at the end of a line, in which
+     * case the next line is a (to be indented) continuation of the
+     * expression.
+     * <p>
+     * Note that &gt; isn't on the list because of its role in closing a
+     * calculated URI expression.
+     */
+    static private final int[] TheContinuerOps = {
+        '!',
+        '%',
+        '&',
+        '*',
+        '+',
+        '-',
+        '/',
+        ':',
+        '<',
+        '?',
+        '^',
+        '|',
+        '~',
+        Audit,              // ::
+        MapsTo,             // =>
+        MatchBind,          // =~
+        MisMatch,           // !~
+        OpABA,              // <=>
+        OpAsl,              // <<
+        OpAsr,              // >>
+        OpAss,              // :=
+        OpAssAdd,           // +=
+        OpAssAnd,           // &=
+        OpAssAprxDiv,       // /=
+        OpAssAsl,           // <<=
+        OpAssAsr,           // >>=
+        OpAssFlrDiv,        // _/=
+        OpAssMod,           // %%=
+        OpAssMul,           // *=
+        OpAssOr,            // |=
+        OpAssPow,           // **=
+        OpAssRemdr,         // %=
+        OpAssSub,           // -=
+        OpAssXor,           // ^=
+        OpButNot,           // &!
+        OpFlrDiv,           // _/
+        OpGeq,              // >=
+        OpLAnd,             // &&
+        OpLOr,              // ||
+        OpLeq,              // <=
+        OpMod,              // %%
+        OpNSame,            // !=
+        OpPow,              // **
+        OpSame,             // ==
+        OpThru,             // ..
+        OpTill,             // ..!
+        OpWhen,             // ->
+        Send                // <-
+    };
+
+    /**
+     * TheContinuers[tokenType] says whether this is a continuation
+     * operator.
+     */
+    static private boolean[] TheContinuers = new boolean[yyname.length];
+
+    static {
+        //this initialization counts on the initial allocation
+        //initializing the members to false
 
-    for (int i = 0; i < TheContinuerOps.length; i++) {
-        TheContinuers[TheContinuerOps[i]] = true;
+        for (int i = 0; i < TheContinuerOps.length; i++) {
+            TheContinuers[TheContinuerOps[i]] = true;
+        }
     }
-}
 
-/**
- * If this token appears at the end of a line, does that make the next
- * line a (to be indented) continuation line?
- */
-static public boolean isContinuer(int tokenType) {
-    return TheContinuers[tokenType];
-}
+    /**
+     * If this token appears at the end of a line, does that make the next
+     * line a (to be indented) continuation line?
+     */
+    static public boolean isContinuer(int tokenType) {
+        return TheContinuers[tokenType];
+    }
 //#line 5637 "EParser.java"
 //###############################################################
 // method: yylexdebug : check lexer state
 //###############################################################
-void yylexdebug(int state,int ch)
-{
-String s=null;
-  if (ch < 0) ch=0;
-  if (ch <= YYMAXTOKEN) //check index bounds
-     s = yyname[ch];    //now get it
-  if (s==null)
-    s = "illegal-symbol";
-  debug("state "+state+", reading "+ch+" ("+s+")");
-}
+    void yylexdebug(int state, int ch) {
+        String s = null;
+        if (ch < 0) ch = 0;
+        if (ch <= YYMAXTOKEN) //check index bounds
+            s = yyname[ch];    //now get it
+        if (s == null)
+            s = "illegal-symbol";
+        debug("state " + state + ", reading " + ch + " (" + s + ")");
+    }
 
 
 
 //###############################################################
 // method: yyparse : parse input and execute indicated items
 //###############################################################
-int yyparse() 
-{
-int yyn;       //next next thing to do
-int yym;       //
-int yystate;   //current parsing state from state table
-String yys;    //current token string
-boolean doaction;
-  init_stacks();
-  yynerrs = 0;
-  yyerrflag = 0;
-  yychar = -1;          //impossible char forces a read
-  yystate=0;            //initial state
-  state_push(yystate);  //save it
-  while (true) //until parsing is done, either correctly, or w/error
-    {
-    doaction=true;
-    if (yydebug) debug("loop"); 
-    //#### NEXT ACTION (from reduction table)
-    for (yyn=yydefred[yystate];yyn==0;yyn=yydefred[yystate])
-      {
-      if (yydebug) debug("yyn:"+yyn+"  state:"+yystate+"  char:"+yychar);
-      if (yychar < 0)      //we want a char?
-        {
-        yychar = yylex();  //get next token
-        //#### ERROR CHECK ####
-        if (yychar < 0)    //it it didn't work/error
-          {
-          yychar = 0;      //change it to default string (no -1!)
-          if (yydebug)
-            yylexdebug(yystate,yychar);
-          }
-        }//yychar<0
-      yyn = yysindex[yystate];  //get amount to shift by (shift index)
-      if ((yyn != 0) && (yyn += yychar) >= 0 &&
-          yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
-        {
-        if (yydebug)
-          debug("state "+yystate+", shifting to state "+yytable[yyn]+"");
-        //#### NEXT STATE ####
-        yystate = yytable[yyn];//we are in a new state
-        state_push(yystate);   //save it
-        val_push(yylval);      //push our lval as the input for next rule
-        yychar = -1;           //since we have 'eaten' a token, say we need another
-        if (yyerrflag > 0)     //have we recovered an error?
-           --yyerrflag;        //give ourselves credit
-        doaction=false;        //but don't process yet
-        break;   //quit the yyn=0 loop
-        }
-
-    yyn = yyrindex[yystate];  //reduce
-    if ((yyn !=0 ) && (yyn += yychar) >= 0 &&
-            yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
-      {   //we reduced!
-      if (yydebug) debug("reduce");
-      yyn = yytable[yyn];
-      doaction=true; //get ready to execute
-      break;         //drop down to actions
-      }
-    else //ERROR RECOVERY
-      {
-      if (yyerrflag==0)
-        {
-        yyerror("syntax error");
-        yynerrs++;
-        }
-      if (yyerrflag < 3) //low error count?
+    int yyparse() {
+        int yyn;       //next next thing to do
+        int yym;       //
+        int yystate;   //current parsing state from state table
+        String yys;    //current token string
+        boolean doaction;
+        init_stacks();
+        yynerrs = 0;
+        yyerrflag = 0;
+        yychar = -1;          //impossible char forces a read
+        yystate = 0;            //initial state
+        state_push(yystate);  //save it
+        while (true) //until parsing is done, either correctly, or w/error
         {
-        yyerrflag = 3;
-        while (true)   //do until break
-          {
-          if (stateptr<0)   //check for under & overflow here
-            {
-            yyerror("stack underflow. aborting...");  //note lower case 's'
-            return 1;
-            }
-          yyn = yysindex[state_peek(0)];
-          if ((yyn != 0) && (yyn += YYERRCODE) >= 0 &&
-                    yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE)
-            {
-            if (yydebug)
-              debug("state "+state_peek(0)+", error recovery shifting to state "+yytable[yyn]+" ");
-            yystate = yytable[yyn];
-            state_push(yystate);
-            val_push(yylval);
-            doaction=false;
-            break;
-            }
-          else
-            {
+            doaction = true;
+            if (yydebug) debug("loop");
+            //#### NEXT ACTION (from reduction table)
+            for (yyn = yydefred[yystate]; yyn == 0; yyn = yydefred[yystate]) {
+                if (yydebug) debug("yyn:" + yyn + "  state:" + yystate + "  char:" + yychar);
+                if (yychar < 0)      //we want a char?
+                {
+                    yychar = yylex();  //get next token
+                    //#### ERROR CHECK ####
+                    if (yychar < 0)    //it it didn't work/error
+                    {
+                        yychar = 0;      //change it to default string (no -1!)
+                        if (yydebug)
+                            yylexdebug(yystate, yychar);
+                    }
+                }//yychar<0
+                yyn = yysindex[yystate];  //get amount to shift by (shift index)
+                if ((yyn != 0) && (yyn += yychar) >= 0 &&
+                  yyn <= YYTABLESIZE && yycheck[yyn] == yychar) {
+                    if (yydebug)
+                        debug("state " + yystate + ", shifting to state " + yytable[yyn] + "");
+                    //#### NEXT STATE ####
+                    yystate = yytable[yyn];//we are in a new state
+                    state_push(yystate);   //save it
+                    val_push(yylval);      //push our lval as the input for next rule
+                    yychar = -1;           //since we have 'eaten' a token, say we need another
+                    if (yyerrflag > 0)     //have we recovered an error?
+                        --yyerrflag;        //give ourselves credit
+                    doaction = false;        //but don't process yet
+                    break;   //quit the yyn=0 loop
+                }
+
+                yyn = yyrindex[yystate];  //reduce
+                if ((yyn != 0) && (yyn += yychar) >= 0 &&
+                  yyn <= YYTABLESIZE && yycheck[yyn] == yychar) {
+                    //we reduced!
+                    if (yydebug) debug("reduce");
+                    yyn = yytable[yyn];
+                    doaction = true; //get ready to execute
+                    break;         //drop down to actions
+                } else //ERROR RECOVERY
+                {
+                    if (yyerrflag == 0) {
+                        yyerror("syntax error");
+                        yynerrs++;
+                    }
+                    if (yyerrflag < 3) //low error count?
+                    {
+                        yyerrflag = 3;
+                        while (true)   //do until break
+                        {
+                            if (stateptr < 0)   //check for under & overflow here
+                            {
+                                yyerror("stack underflow. aborting...");  //note lower case 's'
+                                return 1;
+                            }
+                            yyn = yysindex[state_peek(0)];
+                            if ((yyn != 0) && (yyn += YYERRCODE) >= 0 &&
+                              yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE) {
+                                if (yydebug)
+                                    debug("state " + state_peek(0) + ", error recovery shifting to state " + yytable[yyn] + " ");
+                                yystate = yytable[yyn];
+                                state_push(yystate);
+                                val_push(yylval);
+                                doaction = false;
+                                break;
+                            } else {
+                                if (yydebug)
+                                    debug("error recovery discarding state " + state_peek(0) + " ");
+                                if (stateptr < 0)   //check for under & overflow here
+                                {
+                                    yyerror("Stack underflow. aborting...");  //capital 'S'
+                                    return 1;
+                                }
+                                state_pop();
+                                val_pop();
+                            }
+                        }
+                    } else            //discard this token
+                    {
+                        if (yychar == 0)
+                            return 1; //yyabort
+                        if (yydebug) {
+                            yys = null;
+                            if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
+                            if (yys == null) yys = "illegal-symbol";
+                            debug("state " + yystate + ", error recovery discards token " + yychar + " (" + yys + ")");
+                        }
+                        yychar = -1;  //read another
+                    }
+                }//end error recovery
+            }//yyn=0 loop
+            if (!doaction)   //any reason not to proceed?
+                continue;      //skip action
+            yym = yylen[yyn];          //get count of terminals on rhs
             if (yydebug)
-              debug("error recovery discarding state "+state_peek(0)+" ");
-            if (stateptr<0)   //check for under & overflow here
-              {
-              yyerror("Stack underflow. aborting...");  //capital 'S'
-              return 1;
-              }
-            state_pop();
-            val_pop();
-            }
-          }
-        }
-      else            //discard this token
-        {
-        if (yychar == 0)
-          return 1; //yyabort
-        if (yydebug)
-          {
-          yys = null;
-          if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
-          if (yys == null) yys = "illegal-symbol";
-          debug("state "+yystate+", error recovery discards token "+yychar+" ("+yys+")");
-          }
-        yychar = -1;  //read another
-        }
-      }//end error recovery
-    }//yyn=0 loop
-    if (!doaction)   //any reason not to proceed?
-      continue;      //skip action
-    yym = yylen[yyn];          //get count of terminals on rhs
-    if (yydebug)
-      debug("state "+yystate+", reducing "+yym+" by rule "+yyn+" ("+yyrule[yyn]+")");
-    if (yym>0)                 //if count of rhs not 'nil'
-      yyval = val_peek(yym-1); //get current semantic value
-    switch(yyn)
-      {
+                debug("state " + yystate + ", reducing " + yym + " by rule " + yyn + " (" + yyrule[yyn] + ")");
+            if (yym > 0)                 //if count of rhs not 'nil'
+                yyval = val_peek(yym - 1); //get current semantic value
+            switch (yyn) {
 //########## USER-SUPPLIED ACTIONS ##########
-case 1:
+                case 1:
 //#line 155 "e.y"
-{ myEscape.run(null); }
-break;
-case 2:
+                    {
+                        myEscape.run(null);
+                    }
+                    break;
+                case 2:
 //#line 156 "e.y"
-{ myEscape.run(val_peek(0)); }
-break;
-case 3:
+                    {
+                        myEscape.run(val_peek(0));
+                    }
+                    break;
+                case 3:
 //#line 158 "e.y"
-{ myEscape.run(val_peek(0)); }
-break;
-case 5:
+                    {
+                        myEscape.run(val_peek(0));
+                    }
+                    break;
+                case 5:
 //#line 166 "e.y"
-{ pocket("define"); }
-break;
-case 6:
+                    {
+                        pocket("define");
+                    }
+                    break;
+                case 6:
 //#line 175 "e.y"
-{ yyval = val_peek(1); }
-break;
-case 7:
+                    {
+                        yyval = val_peek(1);
+                    }
+                    break;
+                case 7:
 //#line 179 "e.y"
-{ yyval = val_peek(1); }
-break;
-case 9:
+                    {
+                        yyval = val_peek(1);
+                    }
+                    break;
+                case 9:
 //#line 190 "e.y"
-{ yyval = sequence(val_peek(2), val_peek(0)); }
-break;
-case 11:
+                    {
+                        yyval = sequence(val_peek(2), val_peek(0));
+                    }
+                    break;
+                case 11:
 //#line 195 "e.y"
-{ yyval = sequence(val_peek(2), val_peek(0)); }
-break;
-case 12:
+                    {
+                        yyval = sequence(val_peek(2), val_peek(0));
+                    }
+                    break;
+                case 12:
 //#line 203 "e.y"
-{ yyval = oneExpr(val_peek(0)); }
-break;
-case 16:
+                    {
+                        yyval = oneExpr(val_peek(0));
+                    }
+                    break;
+                case 16:
 //#line 218 "e.y"
-{ yyval = sequence(val_peek(2), val_peek(0)); }
-break;
-case 17:
+                    {
+                        yyval = sequence(val_peek(2), val_peek(0));
+                    }
+                    break;
+                case 17:
 //#line 219 "e.y"
-{ yyval = forward(val_peek(0)); }
-break;
-case 18:
+                    {
+                        yyval = forward(val_peek(0));
+                    }
+                    break;
+                case 18:
 //#line 234 "e.y"
-{ yyval = list(val_peek(0)); }
-break;
-case 21:
+                    {
+                        yyval = list(val_peek(0));
+                    }
+                    break;
+                case 21:
 //#line 239 "e.y"
-{ yyval = assign(val_peek(2),     val_peek(0)); }
-break;
-case 22:
+                    {
+                        yyval = assign(val_peek(2), val_peek(0));
+                    }
+                    break;
+                case 22:
 //#line 240 "e.y"
-{ yyval = update(val_peek(2), val_peek(1), val_peek(0)); }
-break;
-case 23:
+                    {
+                        yyval = update(val_peek(2), val_peek(1), val_peek(0));
+                    }
+                    break;
+                case 23:
 //#line 241 "e.y"
-{ yyval = assAsr(val_peek(2),     val_peek(0)); }
-break;
-case 24:
+                    {
+                        yyval = assAsr(val_peek(2), val_peek(0));
+                    }
+                    break;
+                case 24:
 //#line 242 "e.y"
-{ yyval = update(val_peek(2), val_peek(1), val_peek(0)); }
-break;
-case 25:
+                    {
+                        yyval = update(val_peek(2), val_peek(1), val_peek(0));
+                    }
+                    break;
+                case 25:
 //#line 244 "e.y"
-{ yyval = define(val_peek(2), val_peek(0)); }
-break;
-case 26:
+                    {
+                        yyval = define(val_peek(2), val_peek(0));
+                    }
+                    break;
+                case 26:
 //#line 245 "e.y"
-{ yyval = define(val_peek(2), val_peek(0)); }
-break;
-case 27:
+                    {
+                        yyval = define(val_peek(2), val_peek(0));
+                    }
+                    break;
+                case 27:
 //#line 246 "e.y"
-{ yyval = define(val_peek(2), val_peek(0)); }
-break;
-case 29:
+                    {
+                        yyval = define(val_peek(2), val_peek(0));
+                    }
+                    break;
+                case 29:
 //#line 255 "e.y"
-{ yyval = condOr(val_peek(2), val_peek(0)); }
-break;
-case 31:
+                    {
+                        yyval = condOr(val_peek(2), val_peek(0));
+                    }
+                    break;
+                case 31:
 //#line 264 "e.y"
-{ yyval = condAnd(val_peek(2), val_peek(0)); }
-break;
-case 33:
+                    {
+                        yyval = condAnd(val_peek(2), val_peek(0));
+                    }
+                    break;
+                case 33:
 //#line 273 "e.y"
-{ yyval = same(val_peek(2), val_peek(0)); }
-break;
-case 34:
+                    {
+                        yyval = same(val_peek(2), val_peek(0));
+                    }
+                    break;
+                case 34:
 //#line 274 "e.y"
-{ yyval = not(same(val_peek(2), val_peek(0))); }
-break;
-case 35:
+                    {
+                        yyval = not(same(val_peek(2), val_peek(0)));
+                    }
+                    break;
+                case 35:
 //#line 275 "e.y"
-{ yyval = call(val_peek(2), "and", val_peek(0)); }
-break;
-case 36:
+                    {
+                        yyval = call(val_peek(2), "and", val_peek(0));
+                    }
+                    break;
+                case 36:
 //#line 276 "e.y"
-{ yyval = call(val_peek(2), "or", val_peek(0)); }
-break;
-case 37:
+                    {
+                        yyval = call(val_peek(2), "or", val_peek(0));
+                    }
+                    break;
+                case 37:
 //#line 277 "e.y"
-{ yyval = call(val_peek(2), "xor", val_peek(0)); }
-break;
-case 38:
+                    {
+                        yyval = call(val_peek(2), "xor", val_peek(0));
+                    }
+                    break;
+                case 38:
 //#line 278 "e.y"
-{ yyval = call(val_peek(2), "butNot", val_peek(0)); }
-break;
-case 39:
+                    {
+                        yyval = call(val_peek(2), "butNot", val_peek(0));
+                    }
+                    break;
+                case 39:
 //#line 280 "e.y"
-{ yyval = matchBind(val_peek(2), val_peek(0)); }
-break;
-case 40:
+                    {
+                        yyval = matchBind(val_peek(2), val_peek(0));
+                    }
+                    break;
+                case 40:
 //#line 281 "e.y"
-{ yyval = not(matchBind(val_peek(2), val_peek(0))); }
-break;
-case 41:
+                    {
+                        yyval = not(matchBind(val_peek(2), val_peek(0)));
+                    }
+                    break;
+                case 41:
 //#line 293 "e.y"
-{ yyval = list(val_peek(0)); }
-break;
-case 44:
+                    {
+                        yyval = list(val_peek(0));
+                    }
+                    break;
+                case 44:
 //#line 298 "e.y"
-{ yyval = lessThan(val_peek(2), val_peek(0)); }
-break;
-case 45:
+                    {
+                        yyval = lessThan(val_peek(2), val_peek(0));
+                    }
+                    break;
+                case 45:
 //#line 299 "e.y"
-{ yyval = leq(val_peek(2), val_peek(0)); }
-break;
-case 46:
+                    {
+                        yyval = leq(val_peek(2), val_peek(0));
+                    }
+                    break;
+                case 46:
 //#line 300 "e.y"
-{ yyval = asBigAs(val_peek(2), val_peek(0)); }
-break;
-case 47:
+                    {
+                        yyval = asBigAs(val_peek(2), val_peek(0));
+                    }
+                    break;
+                case 47:
 //#line 301 "e.y"
-{ yyval = geq(val_peek(2), val_peek(0)); }
-break;
-case 48:
+                    {
+                        yyval = geq(val_peek(2), val_peek(0));
+                    }
+                    break;
+                case 48:
 //#line 302 "e.y"
-{ yyval = greaterThan(val_peek(2), val_peek(0)); }
-break;
-case 50:
+                    {
+                        yyval = greaterThan(val_peek(2), val_peek(0));
+                    }
+                    break;
+                case 50:
 //#line 311 "e.y"
-{ yyval = thru(val_peek(2), val_peek(0)); }
-break;
-case 51:
+                    {
+                        yyval = thru(val_peek(2), val_peek(0));
+                    }
+                    break;
+                case 51:
 //#line 312 "e.y"
-{ yyval = till(val_peek(2), val_peek(0)); }
-break;
-case 53:
+                    {
+                        yyval = till(val_peek(2), val_peek(0));
+                    }
+                    break;
+                case 53:
 //#line 321 "e.y"
-{ yyval = call(val_peek(2), "shiftLeft", val_peek(0)); }
-break;
-case 54:
+                    {
+                        yyval = call(val_peek(2), "shiftLeft", val_peek(0));
+                    }
+                    break;
+                case 54:
 //#line 322 "e.y"
-{ yyval = call(val_peek(2), "shiftLeft",
-                                            list(call(val_peek(0), "negate", list())));
-                                }
-break;
-case 55:
+                    {
+                        yyval = call(val_peek(2), "shiftLeft",
+                                     list(call(val_peek(0), "negate", list())));
+                    }
+                    break;
+                case 55:
 //#line 332 "e.y"
-{ yyval = list(val_peek(0)); }
-break;
-case 58:
+                    {
+                        yyval = list(val_peek(0));
+                    }
+                    break;
+                case 58:
 //#line 337 "e.y"
-{ yyval = call(val_peek(2), "add", val_peek(0)); }
-break;
-case 59:
+                    {
+                        yyval = call(val_peek(2), "add", val_peek(0));
+                    }
+                    break;
+                case 59:
 //#line 338 "e.y"
-{ yyval = call(val_peek(2), "subtract", val_peek(0)); }
-break;
-case 60:
+                    {
+                        yyval = call(val_peek(2), "subtract", val_peek(0));
+                    }
+                    break;
+                case 60:
 //#line 346 "e.y"
-{ yyval = list(val_peek(0)); }
-break;
-case 63:
+                    {
+                        yyval = list(val_peek(0));
+                    }
+                    break;
+                case 63:
 //#line 351 "e.y"
-{ yyval = call(val_peek(2), "multiply", val_peek(0)); }
-break;
-case 64:
+                    {
+                        yyval = call(val_peek(2), "multiply", val_peek(0));
+                    }
+                    break;
+                case 64:
 //#line 352 "e.y"
-{ yyval = call(val_peek(2), "approxDivide", val_peek(0)); }
-break;
-case 65:
+                    {
+                        yyval = call(val_peek(2), "approxDivide", val_peek(0));
+                    }
+                    break;
+                case 65:
 //#line 353 "e.y"
-{ yyval = call(val_peek(2), "floorDivide", val_peek(0)); }
-break;
-case 66:
+                    {
+                        yyval = call(val_peek(2), "floorDivide", val_peek(0));
+                    }
+                    break;
+                case 66:
 //#line 354 "e.y"
-{ yyval = call(val_peek(2), "remainder", val_peek(0)); }
-break;
-case 67:
+                    {
+                        yyval = call(val_peek(2), "remainder", val_peek(0));
+                    }
+                    break;
+                case 67:
 //#line 355 "e.y"
-{ yyval = mod(val_peek(2), val_peek(0)); }
-break;
-case 68:
+                    {
+                        yyval = mod(val_peek(2), val_peek(0));
+                    }
+                    break;
+                case 68:
 //#line 363 "e.y"
-{ yyval = list(val_peek(0)); }
-break;
-case 71:
+                    {
+                        yyval = list(val_peek(0));
+                    }
+                    break;
+                case 71:
 //#line 368 "e.y"
-{ yyval = call(val_peek(2), "pow", val_peek(0)); }
-break;
-case 72:
+                    {
+                        yyval = call(val_peek(2), "pow", val_peek(0));
+                    }
+                    break;
+                case 72:
 //#line 377 "e.y"
-{ yyval = list(val_peek(0)); }
-break;
-case 75:
+                    {
+                        yyval = list(val_peek(0));
+                    }
+                    break;
+                case 75:
 //#line 382 "e.y"
-{ yyval = call(val_peek(0), "not", list()); }
-break;
-case 76:
+                    {
+                        yyval = call(val_peek(0), "not", list());
+                    }
+                    break;
+                case 76:
 //#line 383 "e.y"
-{ yyval = call(val_peek(0), "complement", list());}
-break;
-case 77:
+                    {
+                        yyval = call(val_peek(0), "complement", list());
+                    }
+                    break;
+                case 77:
 //#line 384 "e.y"
-{ yyval = call(val_peek(0), "negate", list()); }
-break;
-case 78:
+                    {
+                        yyval = call(val_peek(0), "negate", list());
+                    }
+                    break;
+                case 78:
 //#line 385 "e.y"
-{ yyval = slotExpr(val_peek(0)); }
-break;
-case 81:
+                    {
+                        yyval = slotExpr(val_peek(0));
+                    }
+                    break;
+                case 81:
 //#line 397 "e.y"
-{ yyval = call(val_peek(3), "get", val_peek(1)); }
-break;
-case 82:
+                    {
+                        yyval = call(val_peek(3), "get", val_peek(1));
+                    }
+                    break;
+                case 82:
 //#line 398 "e.y"
-{ yyval = send(val_peek(3), val_peek(1), val_peek(0)); }
-break;
-case 83:
+                    {
+                        yyval = send(val_peek(3), val_peek(1), val_peek(0));
+                    }
+                    break;
+                case 83:
 //#line 399 "e.y"
-{ yyval = send(val_peek(2), "run", val_peek(0)); }
-break;
-case 84:
+                    {
+                        yyval = send(val_peek(2), "run", val_peek(0));
+                    }
+                    break;
+                case 84:
 //#line 401 "e.y"
-{ pocket("no-paren-call");
-                                          yyval = send(val_peek(2), val_peek(0), list()); }
-break;
-case 85:
+                    {
+                        pocket("no-paren-call");
+                        yyval = send(val_peek(2), val_peek(0), list());
+                    }
+                    break;
+                case 85:
 //#line 403 "e.y"
-{ pocket("no-paren-call");
-                                          yyval = call(val_peek(1), val_peek(0), list()); }
-break;
-case 86:
+                    {
+                        pocket("no-paren-call");
+                        yyval = call(val_peek(1), val_peek(0), list());
+                    }
+                    break;
+                case 86:
 //#line 405 "e.y"
-{ pocket("dot-props");
-                                          yyval = property(val_peek(2), val_peek(0), list()); }
-break;
-case 87:
+                    {
+                        pocket("dot-props");
+                        yyval = property(val_peek(2), val_peek(0), list());
+                    }
+                    break;
+                case 87:
 //#line 407 "e.y"
-{ pocket("dot-props");
-                                          yyval = property(val_peek(3), val_peek(1), val_peek(0)); }
-break;
-case 88:
+                    {
+                        pocket("dot-props");
+                        yyval = property(val_peek(3), val_peek(1), val_peek(0));
+                    }
+                    break;
+                case 88:
 //#line 415 "e.y"
-{ yyval = doMeta(val_peek(1), "run", val_peek(0)); }
-break;
-case 89:
+                    {
+                        yyval = doMeta(val_peek(1), "run", val_peek(0));
+                    }
+                    break;
+                case 89:
 //#line 416 "e.y"
-{ yyval = doMeta(val_peek(2), val_peek(1), val_peek(0)); }
-break;
-case 90:
+                    {
+                        yyval = doMeta(val_peek(2), val_peek(1), val_peek(0));
+                    }
+                    break;
+                case 90:
 //#line 417 "e.y"
-{ yyval = doMetaSend(val_peek(2), "run", val_peek(0)); }
-break;
-case 91:
+                    {
+                        yyval = doMetaSend(val_peek(2), "run", val_peek(0));
+                    }
+                    break;
+                case 91:
 //#line 418 "e.y"
-{ yyval = doMetaSend(val_peek(3), val_peek(1), val_peek(0)); }
-break;
-case 92:
+                    {
+                        yyval = doMetaSend(val_peek(3), val_peek(1), val_peek(0));
+                    }
+                    break;
+                case 92:
 //#line 420 "e.y"
-{ pocket("no-paren-call");
-                                          yyval = doMeta(val_peek(1), val_peek(0), list()); }
-break;
-case 93:
+                    {
+                        pocket("no-paren-call");
+                        yyval = doMeta(val_peek(1), val_peek(0), list());
+                    }
+                    break;
+                case 93:
 //#line 422 "e.y"
-{ pocket("no-paren-call");
-                                          yyval = doMetaSend(val_peek(2), val_peek(0), list()); }
-break;
-case 95:
+                    {
+                        pocket("no-paren-call");
+                        yyval = doMetaSend(val_peek(2), val_peek(0), list());
+                    }
+                    break;
+                case 95:
 //#line 436 "e.y"
-{ yyval = call(val_peek(1), "run", val_peek(0)); }
-break;
-case 96:
+                    {
+                        yyval = call(val_peek(1), "run", val_peek(0));
+                    }
+                    break;
+                case 96:
 //#line 437 "e.y"
-{ yyval = call(val_peek(2), val_peek(1), val_peek(0)); }
-break;
-case 97:
+                    {
+                        yyval = call(val_peek(2), val_peek(1), val_peek(0));
+                    }
+                    break;
+                case 97:
 //#line 445 "e.y"
-{ yyval = literal(val_peek(0)); }
-break;
-case 98:
+                    {
+                        yyval = literal(val_peek(0));
+                    }
+                    break;
+                case 98:
 //#line 446 "e.y"
-{ yyval = literal(val_peek(0)); }
-break;
-case 99:
+                    {
+                        yyval = literal(val_peek(0));
+                    }
+                    break;
+                case 99:
 //#line 447 "e.y"
-{ yyval = literal(val_peek(0)); }
-break;
-case 100:
+                    {
+                        yyval = literal(val_peek(0));
+                    }
+                    break;
+                case 100:
 //#line 448 "e.y"
-{ yyval = literal(val_peek(0)); }
-break;
-case 101:
+                    {
+                        yyval = literal(val_peek(0));
+                    }
+                    break;
+                case 101:
 //#line 449 "e.y"
-{ yyval = literal(val_peek(0)); }
-break;
-case 103:
+                    {
+                        yyval = literal(val_peek(0));
+                    }
+                    break;
+                case 103:
 //#line 453 "e.y"
-{ yyval = uriExpr(val_peek(0)); }
-break;
-case 104:
+                    {
+                        yyval = uriExpr(val_peek(0));
+                    }
+                    break;
+                case 104:
 //#line 454 "e.y"
-{ yyval = uriExpr(val_peek(2),val_peek(1)); }
-break;
-case 105:
+                    {
+                        yyval = uriExpr(val_peek(2), val_peek(1));
+                    }
+                    break;
+                case 105:
 //#line 456 "e.y"
-{ yyval = quasiExpr(val_peek(1),val_peek(0)); }
-break;
-case 107:
+                    {
+                        yyval = quasiExpr(val_peek(1), val_peek(0));
+                    }
+                    break;
+                case 107:
 //#line 459 "e.y"
-{ yyval = tuple(val_peek(1)); }
-break;
-case 108:
+                    {
+                        yyval = tuple(val_peek(1));
+                    }
+                    break;
+                case 108:
 //#line 460 "e.y"
-{ yyval = map(val_peek(1)); }
-break;
-case 109:
+                    {
+                        yyval = map(val_peek(1));
+                    }
+                    break;
+                case 109:
 //#line 462 "e.y"
-{ yyval = hide(val_peek(0)); }
-break;
-case 110:
+                    {
+                        yyval = hide(val_peek(0));
+                    }
+                    break;
+                case 110:
 //#line 464 "e.y"
-{ yyval = escape(val_peek(1),val_peek(0)); }
-break;
-case 111:
+                    {
+                        yyval = escape(val_peek(1), val_peek(0));
+                    }
+                    break;
+                case 111:
 //#line 466 "e.y"
-{ yyval = whilex(val_peek(1),val_peek(0)); }
-break;
-case 112:
+                    {
+                        yyval = whilex(val_peek(1), val_peek(0));
+                    }
+                    break;
+                case 112:
 //#line 468 "e.y"
-{ yyval = switchx(val_peek(2),val_peek(1)); }
-break;
-case 113:
+                    {
+                        yyval = switchx(val_peek(2), val_peek(1));
+                    }
+                    break;
+                case 113:
 //#line 470 "e.y"
-{ yyval = tryx(val_peek(2),val_peek(1),val_peek(0)); }
-break;
-case 118:
+                    {
+                        yyval = tryx(val_peek(2), val_peek(1), val_peek(0));
+                    }
+                    break;
+                case 118:
 //#line 478 "e.y"
-{ yyval = quasiLiteralExpr(val_peek(1)); }
-break;
-case 119:
+                    {
+                        yyval = quasiLiteralExpr(val_peek(1));
+                    }
+                    break;
+                case 119:
 //#line 479 "e.y"
-{ yyval = quasiLiteralExpr(val_peek(0)); }
-break;
-case 120:
+                    {
+                        yyval = quasiLiteralExpr(val_peek(0));
+                    }
+                    break;
+                case 120:
 //#line 480 "e.y"
-{ yyval = quasiLiteralExpr(); }
-break;
-case 121:
+                    {
+                        yyval = quasiLiteralExpr();
+                    }
+                    break;
+                case 121:
 //#line 481 "e.y"
-{ yyval = quasiPatternExpr(val_peek(1)); }
-break;
-case 122:
+                    {
+                        yyval = quasiPatternExpr(val_peek(1));
+                    }
+                    break;
+                case 122:
 //#line 482 "e.y"
-{ yyval = quasiPatternExpr(val_peek(0)); }
-break;
-case 123:
+                    {
+                        yyval = quasiPatternExpr(val_peek(0));
+                    }
+                    break;
+                case 123:
 //#line 485 "e.y"
-{ reserved("select"); }
-break;
-case 124:
+                    {
+                        reserved("select");
+                    }
+                    break;
+                case 124:
 //#line 486 "e.y"
-{ pocket("typedef");
-                                                  yyval = val_peek(0); }
-break;
-case 126:
+                    {
+                        pocket("typedef");
+                        yyval = val_peek(0);
+                    }
+                    break;
+                case 126:
 //#line 495 "e.y"
-{ yyval = object(val_peek(1), val_peek(0)); }
-break;
-case 127:
+                    {
+                        yyval = object(val_peek(1), val_peek(0));
+                    }
+                    break;
+                case 127:
 //#line 496 "e.y"
-{ yyval = methObject(val_peek(3),val_peek(1),val_peek(0)); }
-break;
-case 128:
+                    {
+                        yyval = methObject(val_peek(3), val_peek(1), val_peek(0));
+                    }
+                    break;
+                case 128:
 //#line 497 "e.y"
-{ yyval = thunk(val_peek(0)); }
-break;
-case 129:
+                    {
+                        yyval = thunk(val_peek(0));
+                    }
+                    break;
+                case 129:
 //#line 499 "e.y"
-{ yyval = classExpr(val_peek(1),val_peek(0)); }
-break;
-case 130:
+                    {
+                        yyval = classExpr(val_peek(1), val_peek(0));
+                    }
+                    break;
+                case 130:
 //#line 501 "e.y"
-{ pocket("anon-lambda");
-                                          yyval = methObject(audits(ignore(),
-                                                                 list()),
-                                                          val_peek(1),
-                                                          val_peek(0)); }
-break;
-case 131:
+                    {
+                        pocket("anon-lambda");
+                        yyval = methObject(audits(ignore(),
+                                                  list()),
+                                           val_peek(1),
+                                           val_peek(0));
+                    }
+                    break;
+                case 131:
 //#line 506 "e.y"
-{ pocket("anon-lambda");
-                                          yyval = thunk(val_peek(0)); }
-break;
-case 132:
+                    {
+                        pocket("anon-lambda");
+                        yyval = thunk(val_peek(0));
+                    }
+                    break;
+                case 132:
 //#line 514 "e.y"
-{ yyval = noun(val_peek(0)); }
-break;
-case 133:
+                    {
+                        yyval = noun(val_peek(0));
+                    }
+                    break;
+                case 133:
 //#line 523 "e.y"
-{ yyval = val_peek(1); }
-break;
-case 134:
+                    {
+                        yyval = val_peek(1);
+                    }
+                    break;
+                case 134:
 //#line 532 "e.y"
-{ yyval = ifx(val_peek(1), val_peek(0)); }
-break;
-case 135:
+                    {
+                        yyval = ifx(val_peek(1), val_peek(0));
+                    }
+                    break;
+                case 135:
 //#line 533 "e.y"
-{ yyval = ifx(val_peek(3), val_peek(2), val_peek(0)); }
-break;
-case 136:
+                    {
+                        yyval = ifx(val_peek(3), val_peek(2), val_peek(0));
+                    }
+                    break;
+                case 136:
 //#line 534 "e.y"
-{ yyval = ifx(val_peek(4), val_peek(3), val_peek(0)); }
-break;
-case 137:
+                    {
+                        yyval = ifx(val_peek(4), val_peek(3), val_peek(0));
+                    }
+                    break;
+                case 137:
 //#line 542 "e.y"
-{ yyval = forx(val_peek(5),val_peek(3),val_peek(1)); }
-break;
-case 138:
+                    {
+                        yyval = forx(val_peek(5), val_peek(3), val_peek(1));
+                    }
+                    break;
+                case 138:
 //#line 550 "e.y"
-{ yyval = when(val_peek(3),val_peek(2),val_peek(1),val_peek(0)); }
-break;
-case 139:
+                    {
+                        yyval = when(val_peek(3), val_peek(2), val_peek(1), val_peek(0));
+                    }
+                    break;
+                case 139:
 //#line 560 "e.y"
-{ yyval = macro(val_peek(4), val_peek(2), val_peek(1), val_peek(0)); }
-break;
-case 140:
+                    {
+                        yyval = macro(val_peek(4), val_peek(2), val_peek(1), val_peek(0));
+                    }
+                    break;
+                case 140:
 //#line 562 "e.y"
-{ yyval = macro(val_peek(5), val_peek(3), val_peek(2), val_peek(0)); }
-break;
-case 141:
+                    {
+                        yyval = macro(val_peek(5), val_peek(3), val_peek(2), val_peek(0));
+                    }
+                    break;
+                case 141:
 //#line 566 "e.y"
-{ yyval = null; }
-break;
-case 142:
+                    {
+                        yyval = null;
+                    }
+                    break;
+                case 142:
 //#line 568 "e.y"
-{ yyval = macro(val_peek(5), val_peek(3), val_peek(2), val_peek(1)); }
-break;
-case 143:
+                    {
+                        yyval = macro(val_peek(5), val_peek(3), val_peek(2), val_peek(1));
+                    }
+                    break;
+                case 143:
 //#line 570 "e.y"
-{ yyval = macro(val_peek(5), val_peek(3), val_peek(2), val_peek(0)); }
-break;
-case 144:
+                    {
+                        yyval = macro(val_peek(5), val_peek(3), val_peek(2), val_peek(0));
+                    }
+                    break;
+                case 144:
 //#line 578 "e.y"
-{ yyval = null; }
-break;
-case 147:
+                    {
+                        yyval = null;
+                    }
+                    break;
+                case 147:
 //#line 585 "e.y"
-{ yyval = noun("simple__quasiParser"); }
-break;
-case 148:
+                    {
+                        yyval = noun("simple__quasiParser");
+                    }
+                    break;
+                case 148:
 //#line 586 "e.y"
-{ yyval = noun(val_peek(0) +  "__quasiParser"); }
-break;
-case 149:
+                    {
+                        yyval = noun(val_peek(0) + "__quasiParser");
+                    }
+                    break;
+                case 149:
 //#line 587 "e.y"
-{ yyval = val_peek(1); }
-break;
-case 150:
+                    {
+                        yyval = val_peek(1);
+                    }
+                    break;
+                case 150:
 //#line 591 "e.y"
-{ yyval = list(val_peek(0)); }
-break;
-case 151:
+                    {
+                        yyval = list(val_peek(0));
+                    }
+                    break;
+                case 151:
 //#line 592 "e.y"
-{ yyval = with(val_peek(1), val_peek(0)); }
-break;
-case 152:
+                    {
+                        yyval = with(val_peek(1), val_peek(0));
+                    }
+                    break;
+                case 152:
 //#line 596 "e.y"
-{ yyval = list(val_peek(1), val_peek(0)); }
-break;
-case 153:
+                    {
+                        yyval = list(val_peek(1), val_peek(0));
+                    }
+                    break;
+                case 153:
 //#line 597 "e.y"
-{ yyval = with(with(val_peek(2), val_peek(1)), val_peek(0)); }
-break;
-case 154:
+                    {
+                        yyval = with(with(val_peek(2), val_peek(1)), val_peek(0));
+                    }
+                    break;
+                case 154:
 //#line 601 "e.y"
-{ yyval = dollarNoun(val_peek(0)); }
-break;
-case 155:
+                    {
+                        yyval = dollarNoun(val_peek(0));
+                    }
+                    break;
+                case 155:
 //#line 602 "e.y"
-{ yyval = val_peek(1); }
-break;
-case 158:
+                    {
+                        yyval = val_peek(1);
+                    }
+                    break;
+                case 158:
 //#line 620 "e.y"
-{ yyval = list(val_peek(0)); }
-break;
-case 159:
+                    {
+                        yyval = list(val_peek(0));
+                    }
+                    break;
+                case 159:
 //#line 621 "e.y"
-{ yyval = with(val_peek(3), val_peek(0)); }
-break;
-case 161:
+                    {
+                        yyval = with(val_peek(3), val_peek(0));
+                    }
+                    break;
+                case 161:
 //#line 631 "e.y"
-{ yyval = list(val_peek(0)); }
-break;
-case 162:
+                    {
+                        yyval = list(val_peek(0));
+                    }
+                    break;
+                case 162:
 //#line 632 "e.y"
-{ yyval = with(val_peek(3), val_peek(0)); }
-break;
-case 163:
+                    {
+                        yyval = with(val_peek(3), val_peek(0));
+                    }
+                    break;
+                case 163:
 //#line 639 "e.y"
-{ yyval = new Assoc(ignore(), val_peek(0)); }
-break;
-case 165:
+                    {
+                        yyval = new Assoc(ignore(), val_peek(0));
+                    }
+                    break;
+                case 165:
 //#line 644 "e.y"
-{ yyval = new Assoc(val_peek(2), val_peek(0)); }
-break;
-case 166:
+                    {
+                        yyval = new Assoc(val_peek(2), val_peek(0));
+                    }
+                    break;
+                case 166:
 //#line 645 "e.y"
-{ reserved("var-extract-pattern"); }
-break;
-case 168:
+                    {
+                        reserved("var-extract-pattern");
+                    }
+                    break;
+                case 168:
 //#line 650 "e.y"
-{ yyval = suchThat(val_peek(2), val_peek(0)); }
-break;
-case 169:
+                    {
+                        yyval = suchThat(val_peek(2), val_peek(0));
+                    }
+                    break;
+                case 169:
 //#line 652 "e.y"
-{ reserved("meta pattern"); }
-break;
-case 171:
+                    {
+                        reserved("meta pattern");
+                    }
+                    break;
+                case 171:
 //#line 657 "e.y"
-{ yyval = listPattern(val_peek(1)); }
-break;
-case 172:
+                    {
+                        yyval = listPattern(val_peek(1));
+                    }
+                    break;
+                case 172:
 //#line 658 "e.y"
-{ yyval = cdrPattern(val_peek(3), val_peek(0)); }
-break;
-case 173:
+                    {
+                        yyval = cdrPattern(val_peek(3), val_peek(0));
+                    }
+                    break;
+                case 173:
 //#line 660 "e.y"
-{ reserved("map pattern"); }
-break;
-case 174:
+                    {
+                        reserved("map pattern");
+                    }
+                    break;
+                case 174:
 //#line 661 "e.y"
-{ reserved("map pattern"); }
-break;
-case 176:
+                    {
+                        reserved("map pattern");
+                    }
+                    break;
+                case 176:
 //#line 666 "e.y"
-{ yyval = patternEquals(val_peek(0)); }
-break;
-case 178:
+                    {
+                        yyval = patternEquals(val_peek(0));
+                    }
+                    break;
+                case 178:
 //#line 671 "e.y"
-{ yyval = quasiPattern(val_peek(1), val_peek(0)); }
-break;
-case 179:
+                    {
+                        yyval = quasiPattern(val_peek(1), val_peek(0));
+                    }
+                    break;
+                case 179:
 //#line 675 "e.y"
-{ yyval = list(val_peek(0)); }
-break;
-case 180:
+                    {
+                        yyval = list(val_peek(0));
+                    }
+                    break;
+                case 180:
 //#line 676 "e.y"
-{ yyval = with(val_peek(1), val_peek(0)); }
-break;
-case 181:
+                    {
+                        yyval = with(val_peek(1), val_peek(0));
+                    }
+                    break;
+                case 181:
 //#line 680 "e.y"
-{ yyval = list(val_peek(1), val_peek(0)); }
-break;
-case 182:
+                    {
+                        yyval = list(val_peek(1), val_peek(0));
+                    }
+                    break;
+                case 182:
 //#line 681 "e.y"
-{ yyval = with(with(val_peek(2), val_peek(1)), val_peek(0));}
-break;
-case 185:
+                    {
+                        yyval = with(with(val_peek(2), val_peek(1)), val_peek(0));
+                    }
+                    break;
+                case 185:
 //#line 690 "e.y"
-{ yyval = atNoun(val_peek(0)); }
-break;
-case 186:
+                    {
+                        yyval = atNoun(val_peek(0));
+                    }
+                    break;
+                case 186:
 //#line 691 "e.y"
-{ yyval = val_peek(1); }
-break;
-case 187:
+                    {
+                        yyval = val_peek(1);
+                    }
+                    break;
+                case 187:
 //#line 704 "e.y"
-{ yyval = finalPattern(val_peek(2), val_peek(0)); }
-break;
-case 188:
+                    {
+                        yyval = finalPattern(val_peek(2), val_peek(0));
+                    }
+                    break;
+                case 188:
 //#line 705 "e.y"
-{ yyval = finalPattern(val_peek(0)); }
-break;
-case 189:
+                    {
+                        yyval = finalPattern(val_peek(0));
+                    }
+                    break;
+                case 189:
 //#line 706 "e.y"
-{ yyval = slotDefiner(val_peek(0)); }
-break;
-case 190:
+                    {
+                        yyval = slotDefiner(val_peek(0));
+                    }
+                    break;
+                case 190:
 //#line 707 "e.y"
-{ yyval = ignore(); }
-break;
-case 191:
+                    {
+                        yyval = ignore();
+                    }
+                    break;
+                case 191:
 //#line 708 "e.y"
-{ reserved("anon guard"); }
-break;
-case 194:
+                    {
+                        reserved("anon guard");
+                    }
+                    break;
+                case 194:
 //#line 712 "e.y"
-{ yyval = quasiLiteralPatt(val_peek(1)); }
-break;
-case 195:
+                    {
+                        yyval = quasiLiteralPatt(val_peek(1));
+                    }
+                    break;
+                case 195:
 //#line 713 "e.y"
-{ yyval = quasiPatternPatt(val_peek(1)); }
-break;
-case 196:
+                    {
+                        yyval = quasiPatternPatt(val_peek(1));
+                    }
+                    break;
+                case 196:
 //#line 717 "e.y"
-{ yyval = bindDefiner(val_peek(2), val_peek(0)); }
-break;
-case 197:
+                    {
+                        yyval = bindDefiner(val_peek(2), val_peek(0));
+                    }
+                    break;
+                case 197:
 //#line 718 "e.y"
-{ yyval = bindDefiner(val_peek(0)); }
-break;
-case 198:
+                    {
+                        yyval = bindDefiner(val_peek(0));
+                    }
+                    break;
+                case 198:
 //#line 722 "e.y"
-{ yyval = varPattern(val_peek(2), val_peek(0)); }
-break;
-case 199:
+                    {
+                        yyval = varPattern(val_peek(2), val_peek(0));
+                    }
+                    break;
+                case 199:
 //#line 723 "e.y"
-{ yyval = varPattern(val_peek(0)); }
-break;
-case 200:
+                    {
+                        yyval = varPattern(val_peek(0));
+                    }
+                    break;
+                case 200:
 //#line 732 "e.y"
-{ yyval = finalPattern(val_peek(0)); }
-break;
-case 201:
+                    {
+                        yyval = finalPattern(val_peek(0));
+                    }
+                    break;
+                case 201:
 //#line 733 "e.y"
-{ yyval = ignore(); }
-break;
-case 202:
+                    {
+                        yyval = ignore();
+                    }
+                    break;
+                case 202:
 //#line 734 "e.y"
-{ yyval = bindDefiner(val_peek(0)); }
-break;
-case 203:
+                    {
+                        yyval = bindDefiner(val_peek(0));
+                    }
+                    break;
+                case 203:
 //#line 735 "e.y"
-{ yyval = varPattern(val_peek(0)); }
-break;
-case 204:
+                    {
+                        yyval = varPattern(val_peek(0));
+                    }
+                    break;
+                case 204:
 //#line 736 "e.y"
-{ yyval = quasiLiteralPatt(val_peek(1)); }
-break;
-case 205:
+                    {
+                        yyval = quasiLiteralPatt(val_peek(1));
+                    }
+                    break;
+                case 205:
 //#line 737 "e.y"
-{ yyval = quasiPatternPatt(val_peek(1)); }
-break;
-case 207:
+                    {
+                        yyval = quasiPatternPatt(val_peek(1));
+                    }
+                    break;
+                case 207:
 //#line 754 "e.y"
-{ yyval = val_peek(0); }
-break;
-case 208:
+                    {
+                        yyval = val_peek(0);
+                    }
+                    break;
+                case 208:
 //#line 755 "e.y"
-{ yyval = bindDefiner(val_peek(0)); }
-break;
-case 209:
+                    {
+                        yyval = bindDefiner(val_peek(0));
+                    }
+                    break;
+                case 209:
 //#line 756 "e.y"
-{ yyval = varPattern(val_peek(0)); }
-break;
-case 210:
+                    {
+                        yyval = varPattern(val_peek(0));
+                    }
+                    break;
+                case 210:
 //#line 763 "e.y"
-{ yyval = audits(val_peek(0), list()); }
-break;
-case 211:
+                    {
+                        yyval = audits(val_peek(0), list());
+                    }
+                    break;
+                case 211:
 //#line 764 "e.y"
-{ pocket("auditors");
-                                                  yyval = audits(val_peek(2), val_peek(0)); }
-break;
-case 212:
+                    {
+                        pocket("auditors");
+                        yyval = audits(val_peek(2), val_peek(0));
+                    }
+                    break;
+                case 212:
 //#line 772 "e.y"
-{ yyval = audits(val_peek(0), list()); }
-break;
-case 213:
+                    {
+                        yyval = audits(val_peek(0), list());
+                    }
+                    break;
+                case 213:
 //#line 773 "e.y"
-{ pocket("auditors");
-                                                  yyval = audits(val_peek(2), val_peek(0)); }
-break;
-case 214:
+                    {
+                        pocket("auditors");
+                        yyval = audits(val_peek(2), val_peek(0));
+                    }
+                    break;
+                case 214:
 //#line 778 "e.y"
-{ yyval = list(val_peek(0)); }
-break;
-case 215:
+                    {
+                        yyval = list(val_peek(0));
+                    }
+                    break;
+                case 215:
 //#line 779 "e.y"
-{ yyval = with(val_peek(3), val_peek(0)); }
-break;
-case 216:
+                    {
+                        yyval = with(val_peek(3), val_peek(0));
+                    }
+                    break;
+                case 216:
 //#line 791 "e.y"
-{ yyval = list(); }
-break;
-case 217:
+                    {
+                        yyval = list();
+                    }
+                    break;
+                case 217:
 //#line 792 "e.y"
-{ yyval = append(list(val_peek(3)),val_peek(1)); }
-break;
-case 220:
+                    {
+                        yyval = append(list(val_peek(3)), val_peek(1));
+                    }
+                    break;
+                case 220:
 //#line 806 "e.y"
-{ yyval = method(val_peek(1), val_peek(0)); }
-break;
-case 221:
+                    {
+                        yyval = method(val_peek(1), val_peek(0));
+                    }
+                    break;
+                case 221:
 //#line 808 "e.y"
-{ reserved("fields"); }
-break;
-case 222:
+                    {
+                        reserved("fields");
+                    }
+                    break;
+                case 222:
 //#line 809 "e.y"
-{ reserved("on event"); }
-break;
-case 223:
+                    {
+                        reserved("on event");
+                    }
+                    break;
+                case 223:
 //#line 810 "e.y"
-{ reserved("sealed meta"); }
-break;
-case 224:
+                    {
+                        reserved("sealed meta");
+                    }
+                    break;
+                case 224:
 //#line 811 "e.y"
-{ reserved("sealed meta"); }
-break;
-case 225:
+                    {
+                        reserved("sealed meta");
+                    }
+                    break;
+                case 225:
 //#line 819 "e.y"
-{ yyval = methHead("run", val_peek(2), val_peek(0)); }
-break;
-case 226:
+                    {
+                        yyval = methHead("run", val_peek(2), val_peek(0));
+                    }
+                    break;
+                case 226:
 //#line 820 "e.y"
-{ yyval = methHead(val_peek(4), val_peek(2), val_peek(0)); }
-break;
-case 227:
+                    {
+                        yyval = methHead(val_peek(4), val_peek(2), val_peek(0));
+                    }
+                    break;
+                case 227:
 //#line 822 "e.y"
-{ pocket("no-paren-method");
-                                               yyval = methHead(val_peek(1), list(), val_peek(0)); }
-break;
-case 228:
+                    {
+                        pocket("no-paren-method");
+                        yyval = methHead(val_peek(1), list(), val_peek(0));
+                    }
+                    break;
+                case 228:
 //#line 831 "e.y"
-{ yyval = methHead("run", val_peek(2), val_peek(0)); }
-break;
-case 229:
+                    {
+                        yyval = methHead("run", val_peek(2), val_peek(0));
+                    }
+                    break;
+                case 229:
 //#line 833 "e.y"
-{ pocket("one-method-object");
-                                               yyval = methHead(val_peek(4), val_peek(2), val_peek(0)); }
-break;
-case 230:
+                    {
+                        pocket("one-method-object");
+                        yyval = methHead(val_peek(4), val_peek(2), val_peek(0));
+                    }
+                    break;
+                case 230:
 //#line 835 "e.y"
-{ pocket("no-paren-method");
-                                               yyval = methHead(val_peek(1), list(), val_peek(0)); }
-break;
-case 231:
+                    {
+                        pocket("no-paren-method");
+                        yyval = methHead(val_peek(1), list(), val_peek(0));
+                    }
+                    break;
+                case 231:
 //#line 844 "e.y"
-{ yyval = list(val_peek(5), val_peek(2), val_peek(0)); }
-break;
-case 232:
+                    {
+                        yyval = list(val_peek(5), val_peek(2), val_peek(0));
+                    }
+                    break;
+                case 232:
 //#line 854 "e.y"
-{ yyval = matcher(val_peek(1), val_peek(0)); }
-break;
-case 233:
+                    {
+                        yyval = matcher(val_peek(1), val_peek(0));
+                    }
+                    break;
+                case 233:
 //#line 863 "e.y"
-{ yyval = delegatex(val_peek(0)); }
-break;
-case 234:
+                    {
+                        yyval = delegatex(val_peek(0));
+                    }
+                    break;
+                case 234:
 //#line 870 "e.y"
-{ yyval = VOID; }
-break;
-case 235:
+                    {
+                        yyval = VOID;
+                    }
+                    break;
+                case 235:
 //#line 871 "e.y"
-{ yyval = val_peek(0); }
-break;
-case 236:
+                    {
+                        yyval = val_peek(0);
+                    }
+                    break;
+                case 236:
 //#line 875 "e.y"
-{ yyval = val_peek(1); }
-break;
-case 237:
+                    {
+                        yyval = val_peek(1);
+                    }
+                    break;
+                case 237:
 //#line 884 "e.y"
-{ yyval = list(val_peek(7), val_peek(5), val_peek(2), val_peek(0)); }
-break;
-case 238:
+                    {
+                        yyval = list(val_peek(7), val_peek(5), val_peek(2), val_peek(0));
+                    }
+                    break;
+                case 238:
 //#line 887 "e.y"
-{ pocket("when-clauses");
-                                                  yyval = list(val_peek(5), val_peek(2), val_peek(0)); }
-break;
-case 239:
+                    {
+                        pocket("when-clauses");
+                        yyval = list(val_peek(5), val_peek(2), val_peek(0));
+                    }
+                    break;
+                case 239:
 //#line 892 "e.y"
-{ yyval = list(val_peek(0)); }
-break;
-case 240:
+                    {
+                        yyval = list(val_peek(0));
+                    }
+                    break;
+                case 240:
 //#line 893 "e.y"
-{ yyval = with(val_peek(2), val_peek(0)); }
-break;
-case 241:
+                    {
+                        yyval = with(val_peek(2), val_peek(0));
+                    }
+                    break;
+                case 241:
 //#line 897 "e.y"
-{ list(val_peek(2), val_peek(0)); }
-break;
-case 246:
+                    {
+                        list(val_peek(2), val_peek(0));
+                    }
+                    break;
+                case 246:
 //#line 915 "e.y"
-{ yyval = list(); }
-break;
-case 247:
+                    {
+                        yyval = list();
+                    }
+                    break;
+                case 247:
 //#line 919 "e.y"
-{ yyval = list(); }
-break;
-case 248:
+                    {
+                        yyval = list();
+                    }
+                    break;
+                case 248:
 //#line 924 "e.y"
-{ yyval = val_peek(1); }
-break;
-case 249:
+                    {
+                        yyval = val_peek(1);
+                    }
+                    break;
+                case 249:
 //#line 929 "e.y"
-{ pocket("lambda-args");
-                                          yyval = with(val_peek(1), val_peek(0)); }
-break;
-case 252:
+                    {
+                        pocket("lambda-args");
+                        yyval = with(val_peek(1), val_peek(0));
+                    }
+                    break;
+                case 252:
 //#line 939 "e.y"
-{ yyval = list(val_peek(0)); }
-break;
-case 253:
+                    {
+                        yyval = list(val_peek(0));
+                    }
+                    break;
+                case 253:
 //#line 940 "e.y"
-{ yyval = with(val_peek(2), val_peek(0)); }
-break;
-case 254:
+                    {
+                        yyval = with(val_peek(2), val_peek(0));
+                    }
+                    break;
+                case 254:
 //#line 945 "e.y"
-{ yyval = list(val_peek(0)); }
-break;
-case 255:
+                    {
+                        yyval = list(val_peek(0));
+                    }
+                    break;
+                case 255:
 //#line 946 "e.y"
-{ yyval = with(val_peek(2), val_peek(0)); }
-break;
-case 256:
+                    {
+                        yyval = with(val_peek(2), val_peek(0));
+                    }
+                    break;
+                case 256:
 //#line 950 "e.y"
-{ yyval = new Assoc(val_peek(2), val_peek(0)); }
-break;
-case 257:
+                    {
+                        yyval = new Assoc(val_peek(2), val_peek(0));
+                    }
+                    break;
+                case 257:
 //#line 951 "e.y"
-{ reserved("export binding"); }
-break;
-case 259:
+                    {
+                        reserved("export binding");
+                    }
+                    break;
+                case 259:
 //#line 966 "e.y"
-{ yyval = hilbert(val_peek(0)); }
-break;
-case 260:
+                    {
+                        yyval = hilbert(val_peek(0));
+                    }
+                    break;
+                case 260:
 //#line 973 "e.y"
-{ yyval = ((AstroToken)val_peek(0)).getValue(); }
-break;
-case 261:
+                    {
+                        yyval = ((AstroToken)val_peek(0)).getValue();
+                    }
+                    break;
+                case 261:
 //#line 974 "e.y"
-{ reserved("keyword \"" +
-                                           ((AstroToken)val_peek(0)).getText() +
-                                           "\""); }
-break;
-case 262:
+                    {
+                        reserved("keyword \"" +
+                                 ((AstroToken)val_peek(0)).getText() +
+                                 "\"");
+                    }
+                    break;
+                case 262:
 //#line 990 "e.y"
-{ yyval = "add"; }
-break;
-case 263:
+                    {
+                        yyval = "add";
+                    }
+                    break;
+                case 263:
 //#line 991 "e.y"
-{ yyval = "and"; }
-break;
-case 264:
+                    {
+                        yyval = "and";
+                    }
+                    break;
+                case 264:
 //#line 992 "e.y"
-{ yyval = "approxDivide"; }
-break;
-case 265:
+                    {
+                        yyval = "approxDivide";
+                    }
+                    break;
+                case 265:
 //#line 993 "e.y"
-{ yyval = "floorDivide"; }
-break;
-case 266:
+                    {
+                        yyval = "floorDivide";
+                    }
+                    break;
+                case 266:
 //#line 994 "e.y"
-{ yyval = "shiftLeft"; }
-break;
-case 267:
+                    {
+                        yyval = "shiftLeft";
+                    }
+                    break;
+                case 267:
 //#line 995 "e.y"
-{ yyval = "remainder"; }
-break;
-case 268:
+                    {
+                        yyval = "remainder";
+                    }
+                    break;
+                case 268:
 //#line 996 "e.y"
-{ yyval = "mod"; }
-break;
-case 269:
+                    {
+                        yyval = "mod";
+                    }
+                    break;
+                case 269:
 //#line 997 "e.y"
-{ yyval = "multiply"; }
-break;
-case 270:
+                    {
+                        yyval = "multiply";
+                    }
+                    break;
+                case 270:
 //#line 998 "e.y"
-{ yyval = "or"; }
-break;
-case 271:
+                    {
+                        yyval = "or";
+                    }
+                    break;
+                case 271:
 //#line 999 "e.y"
-{ yyval = "pow"; }
-break;
-case 272:
+                    {
+                        yyval = "pow";
+                    }
+                    break;
+                case 272:
 //#line 1000 "e.y"
-{ yyval = "subtract"; }
-break;
-case 273:
+                    {
+                        yyval = "subtract";
+                    }
+                    break;
+                case 273:
 //#line 1001 "e.y"
-{ yyval = "xor"; }
-break;
-case 274:
+                    {
+                        yyval = "xor";
+                    }
+                    break;
+                case 274:
 //#line 1010 "e.y"
-{ yyval = NULL; }
-break;
-case 275:
+                    {
+                        yyval = NULL;
+                    }
+                    break;
+                case 275:
 //#line 1011 "e.y"
-{ yyval = val_peek(3); }
-break;
-case 276:
+                    {
+                        yyval = val_peek(3);
+                    }
+                    break;
+                case 276:
 //#line 1015 "e.y"
-{ yyval = val_peek(1); }
-break;
-case 277:
+                    {
+                        yyval = val_peek(1);
+                    }
+                    break;
+                case 277:
 //#line 1020 "e.y"
-{ yyval = eScript(val_peek(2), optMatcher(val_peek(1))); }
-break;
-case 278:
+                    {
+                        yyval = eScript(val_peek(2), optMatcher(val_peek(1)));
+                    }
+                    break;
+                case 278:
 //#line 1022 "e.y"
-{ pocket("plumbing");
-                                  yyval = eScript(null, val_peek(0)); }
-break;
-case 279:
+                    {
+                        pocket("plumbing");
+                        yyval = eScript(null, val_peek(0));
+                    }
+                    break;
+                case 279:
 //#line 1024 "e.y"
-{ pocket("plumbing");
-                                  yyval = eScript(null, val_peek(0)); }
-break;
-case 281:
+                    {
+                        pocket("plumbing");
+                        yyval = eScript(null, val_peek(0));
+                    }
+                    break;
+                case 281:
 //#line 1034 "e.y"
-{ yyval = with(val_peek(2), val_peek(1)); }
-break;
-case 283:
+                    {
+                        yyval = with(val_peek(2), val_peek(1));
+                    }
+                    break;
+                case 283:
 //#line 1039 "e.y"
-{ yyval = with(val_peek(2), val_peek(1)); }
-break;
-case 285:
+                    {
+                        yyval = with(val_peek(2), val_peek(1));
+                    }
+                    break;
+                case 285:
 //#line 1044 "e.y"
-{ yyval = with(val_peek(2), val_peek(1)); }
-break;
-case 288:
+                    {
+                        yyval = with(val_peek(2), val_peek(1));
+                    }
+                    break;
+                case 288:
 //#line 1061 "e.y"
-{ yyval = with(val_peek(1), val_peek(0)); }
-break;
-case 289:
+                    {
+                        yyval = with(val_peek(1), val_peek(0));
+                    }
+                    break;
+                case 289:
 //#line 1065 "e.y"
-{ yyval = matcher(val_peek(1), val_peek(0)); }
-break;
-case 290:
+                    {
+                        yyval = matcher(val_peek(1), val_peek(0));
+                    }
+                    break;
+                case 290:
 //#line 1072 "e.y"
-{ yyval = null; }
-break;
-case 291:
+                    {
+                        yyval = null;
+                    }
+                    break;
+                case 291:
 //#line 1073 "e.y"
-{ yyval = val_peek(0); }
-break;
-case 292:
+                    {
+                        yyval = val_peek(0);
+                    }
+                    break;
+                case 292:
 //#line 1084 "e.y"
-{ yyval = oType(val_peek(4), val_peek(1)); }
-break;
-case 293:
+                    {
+                        yyval = oType(val_peek(4), val_peek(1));
+                    }
+                    break;
+                case 293:
 //#line 1085 "e.y"
-{ yyval = oType(val_peek(2), list(val_peek(1))); }
-break;
-case 297:
+                    {
+                        yyval = oType(val_peek(2), list(val_peek(1)));
+                    }
+                    break;
+                case 297:
 //#line 1092 "e.y"
-{ yyval = with(val_peek(3),val_peek(1)); }
-break;
-case 298:
+                    {
+                        yyval = with(val_peek(3), val_peek(1));
+                    }
+                    break;
+                case 298:
 //#line 1096 "e.y"
-{ yyval = list(val_peek(0)); }
-break;
-case 299:
+                    {
+                        yyval = list(val_peek(0));
+                    }
+                    break;
+                case 299:
 //#line 1097 "e.y"
-{ yyval = with(val_peek(3),val_peek(0)); }
-break;
-case 300:
+                    {
+                        yyval = with(val_peek(3), val_peek(0));
+                    }
+                    break;
+                case 300:
 //#line 1099 "e.y"
-{ reserved("on event"); }
-break;
-case 301:
+                    {
+                        reserved("on event");
+                    }
+                    break;
+                case 301:
 //#line 1100 "e.y"
-{ reserved("on event"); }
-break;
-case 302:
+                    {
+                        reserved("on event");
+                    }
+                    break;
+                case 302:
 //#line 1107 "e.y"
-{ yyval = mType(val_peek(1),list(),val_peek(0)); }
-break;
-case 303:
+                    {
+                        yyval = mType(val_peek(1), list(), val_peek(0));
+                    }
+                    break;
+                case 303:
 //#line 1108 "e.y"
-{ yyval = mType(val_peek(4),val_peek(2),val_peek(0)); }
-break;
-case 304:
+                    {
+                        yyval = mType(val_peek(4), val_peek(2), val_peek(0));
+                    }
+                    break;
+                case 304:
 //#line 1109 "e.y"
-{ yyval = mType("run",val_peek(2),val_peek(0)); }
-break;
-case 305:
+                    {
+                        yyval = mType("run", val_peek(2), val_peek(0));
+                    }
+                    break;
+                case 305:
 //#line 1113 "e.y"
-{ yyval = val_peek(0); }
-break;
-case 306:
+                    {
+                        yyval = val_peek(0);
+                    }
+                    break;
+                case 306:
 //#line 1114 "e.y"
-{ yyval = val_peek(1); }
-break;
-case 307:
+                    {
+                        yyval = val_peek(1);
+                    }
+                    break;
+                case 307:
 //#line 1118 "e.y"
-{ yyval = list(val_peek(0)); }
-break;
-case 308:
+                    {
+                        yyval = list(val_peek(0));
+                    }
+                    break;
+                case 308:
 //#line 1119 "e.y"
-{ yyval = with(val_peek(3),val_peek(0)); }
-break;
-case 309:
+                    {
+                        yyval = with(val_peek(3), val_peek(0));
+                    }
+                    break;
+                case 309:
 //#line 1126 "e.y"
-{ yyval = pType(val_peek(1),val_peek(0)); }
-break;
-case 310:
+                    {
+                        yyval = pType(val_peek(1), val_peek(0));
+                    }
+                    break;
+                case 310:
 //#line 1127 "e.y"
-{ yyval = pType(null,val_peek(0)); }
-break;
-case 311:
+                    {
+                        yyval = pType(null, val_peek(0));
+                    }
+                    break;
+                case 311:
 //#line 1131 "e.y"
-{ yyval = null; }
-break;
-case 312:
+                    {
+                        yyval = null;
+                    }
+                    break;
+                case 312:
 //#line 1132 "e.y"
-{ yyval = val_peek(0); }
-break;
-case 315:
+                    {
+                        yyval = val_peek(0);
+                    }
+                    break;
+                case 315:
 //#line 1148 "e.y"
-{ begin(); }
-break;
-case 316:
+                    {
+                        begin();
+                    }
+                    break;
+                case 316:
 //#line 1155 "e.y"
-{ end(); }
-break;
+                    {
+                        end();
+                    }
+                    break;
 //#line 6801 "EParser.java"
 //########## END OF USER-SUPPLIED ACTIONS ##########
-    }//switch
-    //#### Now let's reduce... ####
-    if (yydebug) debug("reduce");
-    state_drop(yym);             //we just reduced yylen states
-    yystate = state_peek(0);     //get new state
-    val_drop(yym);               //corresponding value drop
-    yym = yylhs[yyn];            //select next TERMINAL(on lhs)
-    if (yystate == 0 && yym == 0)//done? 'rest' state and at first TERMINAL
-      {
-      debug("After reduction, shifting from state 0 to state "+YYFINAL+"");
-      yystate = YYFINAL;         //explicitly say we're done
-      state_push(YYFINAL);       //and save it
-      val_push(yyval);           //also save the semantic value of parsing
-      if (yychar < 0)            //we want another character?
-        {
-        yychar = yylex();        //get next character
-        if (yychar<0) yychar=0;  //clean, if necessary
-        if (yydebug)
-          yylexdebug(yystate,yychar);
-        }
-      if (yychar == 0)          //Good exit (if lex returns 0 ;-)
-         break;                 //quit the loop--all DONE
-      }//if yystate
-    else                        //else not done yet
-      {                         //get next state and push, for next yydefred[]
-      yyn = yygindex[yym];      //find out where to go
-      if ((yyn != 0) && (yyn += yystate) >= 0 &&
-            yyn <= YYTABLESIZE && yycheck[yyn] == yystate)
-        yystate = yytable[yyn]; //get new state
-      else
-        yystate = yydgoto[yym]; //else go to new defred
-      debug("after reduction, shifting from state "+state_peek(0)+" to state "+yystate+"");
-      state_push(yystate);     //going again, so push state & val...
-      val_push(yyval);         //for next action
-      }
-    }//main loop
-  return 0;//yyaccept!!
-}
+            }//switch
+            //#### Now let's reduce... ####
+            if (yydebug) debug("reduce");
+            state_drop(yym);             //we just reduced yylen states
+            yystate = state_peek(0);     //get new state
+            val_drop(yym);               //corresponding value drop
+            yym = yylhs[yyn];            //select next TERMINAL(on lhs)
+            if (yystate == 0 && yym == 0)//done? 'rest' state and at first TERMINAL
+            {
+                debug("After reduction, shifting from state 0 to state " + YYFINAL + "");
+                yystate = YYFINAL;         //explicitly say we're done
+                state_push(YYFINAL);       //and save it
+                val_push(yyval);           //also save the semantic value of parsing
+                if (yychar < 0)            //we want another character?
+                {
+                    yychar = yylex();        //get next character
+                    if (yychar < 0) yychar = 0;  //clean, if necessary
+                    if (yydebug)
+                        yylexdebug(yystate, yychar);
+                }
+                if (yychar == 0)          //Good exit (if lex returns 0 ;-)
+                    break;                 //quit the loop--all DONE
+            }//if yystate
+            else                        //else not done yet
+            {
+                //get next state and push, for next yydefred[]
+                yyn = yygindex[yym];      //find out where to go
+                if ((yyn != 0) && (yyn += yystate) >= 0 &&
+                  yyn <= YYTABLESIZE && yycheck[yyn] == yystate)
+                    yystate = yytable[yyn]; //get new state
+                else
+                    yystate = yydgoto[yym]; //else go to new defred
+                debug("after reduction, shifting from state " + state_peek(0) + " to state " + yystate + "");
+                state_push(yystate);     //going again, so push state & val...
+                val_push(yyval);         //for next action
+            }
+        }//main loop
+        return 0;//yyaccept!!
+    }
 //## end of method parse() ######################################
-
 
 
 }



1.9       +7 -6      e/src/jsrc/org/erights/e/elang/syntax/FileFeeder.java

Index: FileFeeder.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elang/syntax/FileFeeder.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- FileFeeder.java	2001/09/07 05:49:22	1.8
+++ FileFeeder.java	2001/11/10 19:40:42	1.9
@@ -36,8 +36,11 @@
 public class FileFeeder implements LineFeeder {
 
     private String myUrl;
+
     private int myLineNum;
+
     private BufferedReader myOptReader;
+
     private TextWriter myOptOuts;
 
     /**
@@ -45,8 +48,7 @@
      */
     public FileFeeder(String url,
                       BufferedReader optReader,
-                      TextWriter optOuts)
-    {
+                      TextWriter optOuts) {
         myUrl = url;
         myLineNum = 0; //haven't read anything yet
         myOptReader = optReader;
@@ -60,7 +62,7 @@
                              int indent,
                              char closer,
                              int closeIndent)
-    throws IOException {
+      throws IOException {
         if (myOptReader == null) {
             return null;
         }
@@ -89,7 +91,7 @@
                                          myLineNum,
                                          0,
                                          myLineNum,
-                                         optResultStr.length() -1);
+                                         optResultStr.length() - 1);
         return Twine.fromString(optResultStr, span);
     }
 
@@ -99,8 +101,7 @@
     private String prompt(boolean quoted,
                           int indent,
                           char closer,
-                          int closeIndent)
-    {
+                          int closeIndent) {
         if (quoted) {
             return "> ";
         } else if (0 == indent) {



1.7       +8 -7      e/src/jsrc/org/erights/e/elang/syntax/HilbertHotel.java

Index: HilbertHotel.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elang/syntax/HilbertHotel.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- HilbertHotel.java	2001/11/01 06:32:25	1.6
+++ HilbertHotel.java	2001/11/10 19:40:42	1.7
@@ -51,7 +51,8 @@
      */
     private int myTempCount = 0;
 
-    public HilbertHotel() {}
+    public HilbertHotel() {
+    }
 
     /**
      * generate 'unique' temporary variable names for transformations.
@@ -72,12 +73,12 @@
             return -1;
         }
         int len = name.length();
-        if (i == len -1) {
+        if (i == len - 1) {
             //ends with "_"
             return -1;
         }
-        for (int j = i+1; j < len; j++) {
-            if (! Character.isDigit(name.charAt(j))) {
+        for (int j = i + 1; j < len; j++) {
+            if (!Character.isDigit(name.charAt(j))) {
                 return -1;
             }
         }
@@ -93,7 +94,7 @@
         if (i == -1) {
             return name;
         } else {
-            return name.substring(0,i);
+            return name.substring(0, i);
         }
     }
 
@@ -113,8 +114,8 @@
         if (i == -1) {
             return name;
         }
-        String base = name.substring(0,i);
-        int suffix = Integer.parseInt(name.substring(i+1));
+        String base = name.substring(0, i);
+        int suffix = Integer.parseInt(name.substring(i + 1));
         return base + "_" + (suffix * 2);
     }
 }



1.5       +3 -4      e/src/jsrc/org/erights/e/elang/syntax/Indenter.java

Index: Indenter.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elang/syntax/Indenter.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- Indenter.java	2001/11/01 06:32:25	1.4
+++ Indenter.java	2001/11/10 19:40:42	1.5
@@ -114,8 +114,7 @@
     private void push(Twine openner,
                       char closerChar,
                       int indent,
-                      boolean isNest)
-    {
+                      boolean isNest) {
         myTOS++;
         if (myTOS >= myCloserStack.length) {
             myOpennerStack = (Twine[])grow(myOpennerStack);
@@ -199,9 +198,9 @@
      */
     public int getCloseIndent() {
         if (myNestStack[myTOS]) {
-            return (myNest -1) * 4;
+            return (myNest - 1) * 4;
         } else {
-            return myIndentStack[myTOS] -1;
+            return myIndentStack[myTOS] - 1;
         }
     }
 



1.4       +1 -1      e/src/jsrc/org/erights/e/elang/syntax/LineFeeder.java

Index: LineFeeder.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elang/syntax/LineFeeder.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- LineFeeder.java	2001/09/06 09:55:46	1.3
+++ LineFeeder.java	2001/11/10 19:40:42	1.4
@@ -51,5 +51,5 @@
                       int indent,
                       char closer,
                       int closeIndent)
-    throws IOException;
+      throws IOException;
 }



1.8       +19 -8     e/src/jsrc/org/erights/e/elang/syntax/MsgPatt.java

Index: MsgPatt.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elang/syntax/MsgPatt.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- MsgPatt.java	2001/09/06 09:55:46	1.7
+++ MsgPatt.java	2001/11/10 19:40:42	1.8
@@ -28,23 +28,34 @@
  *
  * @author <a href="mailto:markm@erights.org">Mark S. Miller</a>
  */
-/*package*/ class MsgPatt {
+/*package*/
+class MsgPatt {
 
-    private String    myVerb;
+    private String myVerb;
+
     private Pattern[] myPatterns;
-    private EExpr     myReturnGuard;
+
+    private EExpr myReturnGuard;
 
     /**
      *
      */
     public MsgPatt(String verb, Pattern[] patterns, EExpr returnGuard) {
-        myVerb        = verb;
-        myPatterns    = patterns;
+        myVerb = verb;
+        myPatterns = patterns;
         myReturnGuard = returnGuard;
     }
 
+
+    public Pattern[] patterns() {
+        return myPatterns;
+    }
 
-    public Pattern[] patterns()    { return myPatterns; }
-    public String    verb()        { return myVerb; }
-    public EExpr     returnGuard() { return myReturnGuard; }
+    public String verb() {
+        return myVerb;
+    }
+
+    public EExpr returnGuard() {
+        return myReturnGuard;
+    }
 }



1.8       +4 -2      e/src/jsrc/org/erights/e/elang/syntax/NeedMoreException.java

Index: NeedMoreException.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elang/syntax/NeedMoreException.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- NeedMoreException.java	2001/09/08 22:59:21	1.7
+++ NeedMoreException.java	2001/11/10 19:40:42	1.8
@@ -28,8 +28,11 @@
 public class NeedMoreException extends RuntimeException {
 
     private boolean myQuoted;
+
     private int myIndent;
+
     private char myCloser;
+
     private int closeIndent;
 
     /**
@@ -52,8 +55,7 @@
                              boolean quoted,
                              int indent,
                              char closer,
-                             int closeIndent)
-    {
+                             int closeIndent) {
         super(msg);
         myIndent = indent;
     }



1.3       +2 -3      e/src/jsrc/org/erights/e/elang/syntax/PrettyFeeder.java

Index: PrettyFeeder.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elang/syntax/PrettyFeeder.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- PrettyFeeder.java	2001/09/06 09:55:46	1.2
+++ PrettyFeeder.java	2001/11/10 19:40:42	1.3
@@ -74,8 +74,7 @@
     public Twine optNextLine(boolean quoted,
                              int indent,
                              char closer,
-                             int closeIndent)
-    {
+                             int closeIndent) {
         Twine optResult = myWrapped.optNextLine(quoted,
                                                 indent,
                                                 closer,
@@ -83,7 +82,7 @@
         if (null == optResult) {
             return optResult;
         }
-        if (! quoted) {
+        if (!quoted) {
             optResult = optResult.trim();
             if (optResult.startsWith(String.valueOf(closer))) {
                 indent = closeIndent;



1.4       +1 -1      e/src/jsrc/org/erights/e/elang/syntax/QuasiFeeder.java

Index: QuasiFeeder.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elang/syntax/QuasiFeeder.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- QuasiFeeder.java	2001/09/06 09:55:46	1.3
+++ QuasiFeeder.java	2001/11/10 19:40:42	1.4
@@ -54,7 +54,7 @@
                              int indent,
                              char closer,
                              int closeIndent)
-    throws IOException {
+      throws IOException {
         //XXX thread blockage point:
         Twine optResult = myWrapped.optNextLine(quoted,
                                                 indent,



1.19      +18 -10    e/src/jsrc/org/erights/e/elang/syntax/SyntaxException.java

Index: SyntaxException.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elang/syntax/SyntaxException.java,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -r1.18 -r1.19
--- SyntaxException.java	2001/09/07 05:49:22	1.18
+++ SyntaxException.java	2001/11/10 19:40:42	1.19
@@ -20,8 +20,8 @@
 */
 
 import org.erights.e.develop.format.StringHelper;
-import org.erights.e.elib.eio.EPrintable;
 import org.erights.e.elib.base.SourceSpan;
+import org.erights.e.elib.eio.EPrintable;
 import org.erights.e.elib.eio.TextWriter;
 import org.erights.e.elib.tables.Twine;
 
@@ -33,10 +33,12 @@
  * @author <a href="mailto:markm@erights.org">Mark S. Miller</a>
  */
 public class SyntaxException
-extends RuntimeException implements EPrintable {
+  extends RuntimeException implements EPrintable {
 
     private Twine myOptLine;
+
     private int myStart;
+
     private int myBound;
 
     /**
@@ -45,8 +47,7 @@
     public SyntaxException(String msg,
                            Twine optLine,
                            int start,
-                           int bound)
-    {
+                           int bound) {
         super(msg);
         myOptLine = optLine;
         myStart = start;
@@ -56,17 +57,23 @@
     /**
      *
      */
-    public Twine optLine()  { return myOptLine; }
+    public Twine optLine() {
+        return myOptLine;
+    }
 
     /**
      *
      */
-    public int getStart()   { return myStart; }
+    public int getStart() {
+        return myStart;
+    }
 
     /**
      *
      */
-    public int getBound()   { return myBound; }
+    public int getBound() {
+        return myBound;
+    }
 
     /**
      *
@@ -80,9 +87,10 @@
     }
 
     static private final String ErrPrefix = "syntax error: ";
+
     /** Same number of spaces as in the ErrPrefix */
     static private final String ErrIndent =
-        StringHelper.multiply(" ", ErrPrefix.length());
+      StringHelper.multiply(" ", ErrPrefix.length());
 
     /**
      * Prints as "syntax error: " followed by an optional message, and then
@@ -91,13 +99,13 @@
     public void printOn(TextWriter out) throws IOException {
         out.print(ErrPrefix);
         String msg = getMessage();
-        if (! msg.equals("syntax error")) {
+        if (!msg.equals("syntax error")) {
             out.indent(ErrIndent).print(msg);
         }
         if (null != myOptLine) {
             out = out.indent("  ");
             out.lnPrint(myOptLine.replaceAll("\t", " "));
-            if (! myOptLine.endsWith("\n")) {
+            if (!myOptLine.endsWith("\n")) {
                 out.println();
             }
             out.print(StringHelper.multiply(" ", myStart));



1.3       +4 -4      e/src/jsrc/org/erights/e/elang/syntax/TwineFeeder.java

Index: TwineFeeder.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elang/syntax/TwineFeeder.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- TwineFeeder.java	2001/09/02 22:36:51	1.2
+++ TwineFeeder.java	2001/11/10 19:40:42	1.3
@@ -30,6 +30,7 @@
 public class TwineFeeder implements LineFeeder {
 
     private Twine mySource;
+
     private int myPos;
 
     /**
@@ -46,8 +47,7 @@
     public Twine optNextLine(boolean quoted,
                              int indent,
                              char closer,
-                             int closeIndent)
-    {
+                             int closeIndent) {
         int len = mySource.size();
         if (myPos >= len) {
             return null;
@@ -58,8 +58,8 @@
             myPos = len;
             return result;
         }
-        Twine result = (Twine)mySource.run(myPos, i+1);
-        myPos = i+1;
+        Twine result = (Twine)mySource.run(myPos, i + 1);
+        myPos = i + 1;
         return result;
     }
 }



1.17      +18 -7     e/src/jsrc/org/erights/e/elang/syntax/URI.java

Index: URI.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elang/syntax/URI.java,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -r1.16 -r1.17
--- URI.java	2001/11/03 13:32:51	1.16
+++ URI.java	2001/11/10 19:40:42	1.17
@@ -49,9 +49,15 @@
             //language probably guarantees initialization to false.
             URICs[i] = false;
         }
-        for (char c = 'a'; c <= 'z'; c++) { URICs[c] = true; }
-        for (char c = 'A'; c <= 'Z'; c++) { URICs[c] = true; }
-        for (char c = '0'; c <= '9'; c++) { URICs[c] = true; }
+        for (char c = 'a'; c <= 'z'; c++) {
+            URICs[c] = true;
+        }
+        for (char c = 'A'; c <= 'Z'; c++) {
+            URICs[c] = true;
+        }
+        for (char c = '0'; c <= '9'; c++) {
+            URICs[c] = true;
+        }
         String allowed = ";/?:@&=+$,-_.!~*'()%\\|#";
         for (int i = 0; i < allowed.length(); i++) {
             URICs[allowed.charAt(i)] = true;
@@ -59,6 +65,7 @@
     }
 
     private String myProtocol;
+
     private String myOptBody;
 
     /**
@@ -75,7 +82,7 @@
             throw new Error("internal: URI must have a ':'");
         }
         myProtocol = text.substring(1, i);
-        int lasti = text.length() -1;
+        int lasti = text.length() - 1;
         if (tokenType == EParser.URIStart) {
             if (i != lasti) {
                 throw new Error("internal: URIStart must end with a ':'");
@@ -93,7 +100,7 @@
      *
      */
     static public AstroToken make(int tokenType, Twine source) {
-        source = source.replaceAll("\\","/").replaceAll("|",":");
+        source = source.replaceAll("\\", "/").replaceAll("|", ":");
         return new URI(tokenType, source);
     }
 
@@ -131,7 +138,9 @@
      *
      * @see org.erights.e.elang.syntax.Identifier
      */
-    public String protocol()        { return myProtocol; }
+    public String protocol() {
+        return myProtocol;
+    }
 
     /**
      * The (URICStart URICPart*) between the colon and the &gt;
@@ -139,7 +148,9 @@
      * @see org.erights.e.elang.syntax.URI#isURICStart
      * @see org.erights.e.elang.syntax.URI#isURICPart
      */
-    public String optBody()         { return myOptBody; }
+    public String optBody() {
+        return myOptBody;
+    }
 
     /**
      * The entire URI: '<' protocol ':' body '>'



1.13      +7 -9      e/src/jsrc/org/erights/e/elang/visitors/AlphaRenameVisitor.java

Index: AlphaRenameVisitor.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elang/visitors/AlphaRenameVisitor.java,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- AlphaRenameVisitor.java	2001/11/09 01:17:22	1.12
+++ AlphaRenameVisitor.java	2001/11/10 19:40:43	1.13
@@ -50,12 +50,14 @@
 public class AlphaRenameVisitor extends CopyVisitor {
 
     private FlexMap myOptRenamings = null;
+
     private HilbertHotel myHilbert = new HilbertHotel();
 
     /**
      *
      */
-    public AlphaRenameVisitor() {}
+    public AlphaRenameVisitor() {
+    }
 
     /**
      *
@@ -95,8 +97,7 @@
      *
      */
     public Object visitFinalPattern(String varName,
-                                    EExpr valueGuardExpr)
-    {
+                                    EExpr valueGuardExpr) {
         String newName;
         if (myOptRenamings == null) {
             newName = myHilbert.rename(varName);
@@ -116,8 +117,7 @@
      *
      */
     public Object visitVarPattern(String varName,
-                                  EExpr slotGuardExpr)
-    {
+                                  EExpr slotGuardExpr) {
         String newName;
         if (myOptRenamings == null) {
             newName = myHilbert.rename(varName);
@@ -229,8 +229,7 @@
                                String verb,
                                Pattern[] patterns,
                                EExpr returnGuard,
-                               EExpr body)
-    {
+                               EExpr body) {
         FlexMap optOriginal = innerRenames();
         try {
             return super.visitEMethod(docComment,
@@ -248,8 +247,7 @@
      *
      */
     public Object visitMatcher(Pattern patt,
-                               EExpr body)
-    {
+                               EExpr body) {
         FlexMap optOriginal = innerRenames();
         try {
             return super.visitMatcher(patt, body);



1.2       +23 -23    e/src/jsrc/org/erights/e/elang/visitors/BindFramesVisitor.java

Index: BindFramesVisitor.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elang/visitors/BindFramesVisitor.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- BindFramesVisitor.java	2001/11/09 04:47:35	1.1
+++ BindFramesVisitor.java	2001/11/10 19:40:43	1.2
@@ -47,6 +47,7 @@
     static private final NounExpr[] NOUN_PROTO = {};
 
     protected ScopeMap myBindings;
+
     protected int[] myMaxLocalsCell;
 
     static public BindFramesVisitor make(Scope scope) {
@@ -54,11 +55,13 @@
     }
 
     protected BindFramesVisitor(ScopeMap bindings, int[] localsCell) {
-         myBindings = bindings;
-         myMaxLocalsCell = localsCell;
+        myBindings = bindings;
+        myMaxLocalsCell = localsCell;
     }
 
-    public ScopeMap scopeMap() { return myBindings; }
+    public ScopeMap scopeMap() {
+        return myBindings;
+    }
 
     /*
      * Set the scope map of the new node to the scope map visible from
@@ -89,9 +92,11 @@
         return new BindNestedVisitor(newBindings.nested(), 0, myMaxLocalsCell);
     }
 
-    public int maxLocals() { return myMaxLocalsCell[0]; }
+    public int maxLocals() {
+        return myMaxLocalsCell[0];
+    }
 
-   /***************************** Names *************************/
+    /***************************** Names *************************/
 
     /**
      *
@@ -106,8 +111,7 @@
      *
      */
     public Object visitFinalPattern(String varName,
-                                    EExpr valueGuardExpr)
-    {
+                                    EExpr valueGuardExpr) {
         return new FinalPattern(varName,
                                 newFinal(varName),
                                 xformEExpr(valueGuardExpr));
@@ -117,11 +121,10 @@
      *
      */
     public Object visitVarPattern(String varName,
-                                  EExpr slotGuardExpr)
-    {
+                                  EExpr slotGuardExpr) {
         return new VarPattern(varName,
-                                newVar(varName),
-                                xformEExpr(slotGuardExpr));
+                              newVar(varName),
+                              xformEExpr(slotGuardExpr));
     }
 
     abstract protected NounExpr newFinal(String varName);
@@ -134,11 +137,10 @@
     public Object visitObjectExpr(String docComment,
                                   String optFQN,
                                   NounExpr[] auditors,
-                                  EScript eScript)
-    {
+                                  EScript eScript) {
         // TODO markm can worry about auditors
         StaticScope ss = eScript.staticScope();
-        String[] used = (String[]) ss.namesUsed().getKeys(String.class);
+        String[] used = (String[])ss.namesUsed().getKeys(String.class);
         HashMap newBindings = new HashMap(used.length);
         ArrayList fields = new ArrayList(used.length);
         for (int i = 0, max = used.length; i < max; i++) {
@@ -155,9 +157,9 @@
         CopyVisitor nested = nestObject(inner);
         return new ObjectExpr(docComment,
                               optFQN,
-                              (NounExpr[]) xformEExprs(auditors),
+                              (NounExpr[])xformEExprs(auditors),
                               nested.xformEScript(eScript),
-                              (NounExpr[]) fields.toArray(NOUN_PROTO));
+                              (NounExpr[])fields.toArray(NOUN_PROTO));
     }
 
     /**
@@ -166,7 +168,7 @@
     public Object visitMatchBindExpr(EExpr specimen, Pattern patt) {
         Pattern xpat = xformPattern(patt);
         ConstMap out = xpat.staticScope().namesOut();
-        String[] boundNames = (String[]) out.getKeys(String.class);
+        String[] boundNames = (String[])out.getKeys(String.class);
         int boundCount = boundNames.length;
         NounExpr[] bound = new NounExpr[boundCount];
         for (int i = 0; i < boundCount; i++) {
@@ -195,8 +197,7 @@
                                String verb,
                                Pattern[] patterns,
                                EExpr returnGuard,
-                               EExpr body)
-    {
+                               EExpr body) {
         // NOTE the acces to maxLocals is after the visitor is used on
         // the other children.
         BindFramesVisitor t = nestLocals();
@@ -212,8 +213,7 @@
      *
      */
     public Object visitMatcher(Pattern patt,
-                               EExpr body)
-    {
+                               EExpr body) {
         BindFramesVisitor t = nestLocals();
         return new Matcher(t.xformPattern(patt),
                            t.xformEExpr(body),
@@ -229,7 +229,7 @@
 
     public BindNestedVisitor(ScopeMap bindings, int localN, int[] localsCell) {
         super(bindings, localsCell);
-	myNextLocal = localN;
+        myNextLocal = localN;
     }
 
     protected CopyVisitor nest() {
@@ -247,7 +247,7 @@
         NounExpr noun = new LocalSlotNounExpr(varName, nextLocal());
         myBindings = myBindings.with(varName, noun);
         return noun;
-   }
+    }
 
     private int nextLocal() {
         int index = myNextLocal;



1.21      +18 -25    e/src/jsrc/org/erights/e/elang/visitors/CopyVisitor.java

Index: CopyVisitor.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elang/visitors/CopyVisitor.java,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -r1.20 -r1.21
--- CopyVisitor.java	2001/11/09 01:17:22	1.20
+++ CopyVisitor.java	2001/11/10 19:40:43	1.21
@@ -87,7 +87,7 @@
      * NOTE: this needs to generate a new visitor by tlking ot the decorator.
      */
     protected CopyVisitor
-    nest() {
+      nest() {
         return this;
     }
 
@@ -99,21 +99,21 @@
         if (optENode == null) {
             return null;
         } else if (optENode instanceof ENode) {
-            return xformNode((ENode) optENode);
+            return xformNode((ENode)optENode);
         } else {
-            ENode[] eNodes = (ENode[]) optENode;
+            ENode[] eNodes = (ENode[])optENode;
             Class elementClass = eNodes.getClass().getComponentType();
-            ENode[] result = (ENode[]) Array.newInstance(elementClass,
-                                                         eNodes.length);
+            ENode[] result = (ENode[])Array.newInstance(elementClass,
+                                                        eNodes.length);
             for (int i = 0; i < eNodes.length; i++) {
-                result[i] = (ENode) run(eNodes[i]);
+                result[i] = (ENode)run(eNodes[i]);
             }
             return result;
         }
     }
 
     public ENode xformNode(ENode eNode) {
-        ENode result = (ENode) eNode.welcome(myDecorator);
+        ENode result = (ENode)eNode.welcome(myDecorator);
         result.defineSource(eNode.optSource());
         return result;
     }
@@ -223,8 +223,7 @@
     public Object visitObjectExpr(String docComment,
                                   String optFQN,
                                   NounExpr[] auditors,
-                                  EScript eScript)
-    {
+                                  EScript eScript) {
         return new ObjectExpr(docComment,
                               optFQN,
                               (NounExpr[])xformEExprs(auditors),
@@ -270,11 +269,11 @@
      *
      */
     public Object visitSeqExpr(EExpr[] subs) {
-    	EExpr[] newSubs = new EExpr[subs.length];
-    	for (int i = 0, max = subs.length; i< max; i++) {
-    		newSubs[i] = xformEExpr(subs[i]);
-    	}
-    	return new SeqExpr(newSubs);
+        EExpr[] newSubs = new EExpr[subs.length];
+        for (int i = 0, max = subs.length; i < max; i++) {
+            newSubs[i] = xformEExpr(subs[i]);
+        }
+        return new SeqExpr(newSubs);
     }
 
 
@@ -326,7 +325,6 @@
     }
 
 
-
     /**
      *
      */
@@ -339,8 +337,7 @@
      *
      */
     public Object visitFinalPattern(String varName,
-                                    EExpr valueGuardExpr)
-    {
+                                    EExpr valueGuardExpr) {
         return new FinalPattern(varName,
                                 xformEExpr(valueGuardExpr));
     }
@@ -350,8 +347,7 @@
      *
      */
     public Object visitVarPattern(String varName,
-                                  EExpr slotGuardExpr)
-    {
+                                  EExpr slotGuardExpr) {
         return new VarPattern(varName,
                               xformEExpr(slotGuardExpr));
     }
@@ -436,8 +432,7 @@
      *
      */
     public Object visitEScript(EMethodNode[] optMethods,
-                               Matcher optMatcher)
-    {
+                               Matcher optMatcher) {
         if (null == optMethods) {
             return new EScript(null, xformMatcher(optMatcher));
         }
@@ -458,8 +453,7 @@
                                String verb,
                                Pattern[] patterns,
                                EExpr returnGuard,
-                               EExpr body)
-    {
+                               EExpr body) {
         CopyVisitor t = nest();
         return new EMethod(docComment,
                            verb,
@@ -473,8 +467,7 @@
      *
      */
     public Object visitMatcher(Pattern patt,
-                               EExpr body)
-    {
+                               EExpr body) {
         CopyVisitor t = nest();
         return new Matcher(t.xformPattern(patt),
                            t.xformEExpr(body));



1.18      +1 -1      e/src/jsrc/org/erights/e/elang/visitors/ETreeVisitor.java

Index: ETreeVisitor.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elang/visitors/ETreeVisitor.java,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -r1.17 -r1.18
--- ETreeVisitor.java	2001/11/09 01:17:22	1.17
+++ ETreeVisitor.java	2001/11/10 19:40:43	1.18
@@ -38,7 +38,7 @@
 
     /**************************** EExprs **************************/
 
-     /**
+    /**
      * varName ":=" rValue. <p>
      *
      * Does a setValue on the slot named by varName to the value of rValue



1.15      +4 -8      e/src/jsrc/org/erights/e/elang/visitors/RenameVisitor.java

Index: RenameVisitor.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elang/visitors/RenameVisitor.java,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- RenameVisitor.java	2001/09/06 09:55:47	1.14
+++ RenameVisitor.java	2001/11/10 19:40:43	1.15
@@ -161,8 +161,7 @@
      *
      */
     public Object visitFinalPattern(String varName,
-                                    EExpr valueGuardExpr)
-    {
+                                    EExpr valueGuardExpr) {
         myRenamings.removeKey(varName);
         return super.visitFinalPattern(varName, valueGuardExpr);
     }
@@ -172,8 +171,7 @@
      *
      */
     public Object visitVarPattern(String varName,
-                                  EExpr slotGuardExpr)
-    {
+                                  EExpr slotGuardExpr) {
         myRenamings.removeKey(varName);
         return super.visitVarPattern(varName, slotGuardExpr);
     }
@@ -190,8 +188,7 @@
                                String verb,
                                Pattern[] patterns,
                                EExpr returnGuard,
-                               EExpr body)
-    {
+                               EExpr body) {
         FlexMap original = myRenamings.diverge();
         try {
             return super.visitEMethod(docComment,
@@ -209,8 +206,7 @@
      *
      */
     public Object visitMatcher(Pattern patt,
-                               EExpr body)
-    {
+                               EExpr body) {
         FlexMap original = myRenamings.diverge();
         try {
             return super.visitMatcher(patt, body);



1.27      +47 -46    e/src/jsrc/org/erights/e/elib/base/ClassDesc.java

Index: ClassDesc.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/base/ClassDesc.java,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -r1.26 -r1.27
--- ClassDesc.java	2001/10/03 04:41:03	1.26
+++ ClassDesc.java	2001/11/10 19:40:43	1.27
@@ -71,65 +71,65 @@
      */
     static private final String[][] GuardSugarings = {
         { "java.lang.Class",
-          "org.erights.e.meta.java.lang.ClassGuardSugar" },
+            "org.erights.e.meta.java.lang.ClassGuardSugar" },
         { "java.lang.String",
-          "org.erights.e.meta.java.lang.StringGuardSugar" },
+            "org.erights.e.meta.java.lang.StringGuardSugar" },
 
         { "java.lang.Throwable",
-          "org.erights.e.meta.java.lang.ThrowableGuardSugar" },
+            "org.erights.e.meta.java.lang.ThrowableGuardSugar" },
 
         { "java.lang.Byte",
-          "org.erights.e.meta.java.lang.ByteGuardSugar" },
+            "org.erights.e.meta.java.lang.ByteGuardSugar" },
         { "java.lang.Short",
-          "org.erights.e.meta.java.lang.ShortGuardSugar" },
+            "org.erights.e.meta.java.lang.ShortGuardSugar" },
         { "java.lang.Integer",
-          "org.erights.e.meta.java.lang.IntegerGuardSugar" },
+            "org.erights.e.meta.java.lang.IntegerGuardSugar" },
         { "java.lang.Long",
-          "org.erights.e.meta.java.lang.LongGuardSugar" },
+            "org.erights.e.meta.java.lang.LongGuardSugar" },
         { "java.math.BigInteger",
-          "org.erights.e.meta.java.math.BigIntegerGuardSugar" },
+            "org.erights.e.meta.java.math.BigIntegerGuardSugar" },
 
         { "java.lang.Float",
-          "org.erights.e.meta.java.lang.FloatGuardSugar" },
+            "org.erights.e.meta.java.lang.FloatGuardSugar" },
         { "java.lang.Double",
-          "org.erights.e.meta.java.lang.DoubleGuardSugar" },
+            "org.erights.e.meta.java.lang.DoubleGuardSugar" },
 
         { "java.lang.Void",
-          "org.erights.e.meta.java.lang.VoidGuardSugar" },
+            "org.erights.e.meta.java.lang.VoidGuardSugar" },
 
         { "org.erights.e.elib.base.TypeDesc",
-          "org.erights.e.meta.org.erights.e.elib.base.TypeDescGuardSugar" },
+            "org.erights.e.meta.org.erights.e.elib.base.TypeDescGuardSugar" },
 
         { "org.erights.e.elib.ref.Ref",
-          "org.erights.e.meta.org.erights.e.elib.ref.RefGuardSugar" },
+            "org.erights.e.meta.org.erights.e.elib.ref.RefGuardSugar" },
 
         { "org.erights.e.elib.slot.SlotGuard",
-          "org.erights.e.meta.org.erights.e.elib.slot.SlotGuardGuardSugar" },
+            "org.erights.e.meta.org.erights.e.elib.slot.SlotGuardGuardSugar" },
         { "org.erights.e.elib.slot.ValueGuard",
-          "org.erights.e.meta.org.erights.e.elib.slot.ValueGuardGuardSugar" },
+            "org.erights.e.meta.org.erights.e.elib.slot.ValueGuardGuardSugar" },
 
         { "org.erights.e.elib.tables.EList",
-          "org.erights.e.meta.org.erights.e.elib.tables.EListGuardSugar" }
+            "org.erights.e.meta.org.erights.e.elib.tables.EListGuardSugar" }
     };
 
     /**
      * The above list of pairs turned into a ConstMap.
      */
     static private final ConstMap TheGuardSugars =
-        ConstMap.fromPairs(GuardSugarings);
+      ConstMap.fromPairs(GuardSugarings);
 
     /**
      *
      */
     static private final FlexMap GuardCache =
-        FlexMap.fromTypes(Class.class, Class.class);
+      FlexMap.fromTypes(Class.class, Class.class);
 
     /**
      * @param clazz A non-primitive class
      * @return A kind of ClassDesc.
      */
     static private Class GetGuard(Class clazz)
-    throws ClassNotFoundException {
+      throws ClassNotFoundException {
         if (clazz.isPrimitive()) {
             throw new RuntimeException("Must not be primitive: " + clazz);
         }
@@ -154,7 +154,7 @@
             if (null == optSuper) {
                 supers = ifaces;
             } else {
-                supers = new Class[ifaces.length +1];
+                supers = new Class[ifaces.length + 1];
                 System.arraycopy(ifaces, 0, supers, 1, ifaces.length);
                 supers[0] = optSuper;
             }
@@ -162,9 +162,8 @@
             for (int i = 0; i < supers.length; i++) {
                 Class superSugar = GetGuard(supers[i]);
                 if (ClassDesc.class != superSugar &&
-                    (InterfaceGuardSugar.class != superSugar ||
-                     clazz.isInterface()))
-                {
+                  (InterfaceGuardSugar.class != superSugar ||
+                  clazz.isInterface())) {
                     //only interfaces inherit InterfaceGuardSugar
                     superSugarSet.put(superSugar, null);
                 }
@@ -199,7 +198,7 @@
      * ClassDesc or a GuardSugar subclass of ClassDesc).
      */
     static private final FlexMap DescCache =
-        FlexMap.fromTypes(Class.class, ClassDesc.class);
+      FlexMap.fromTypes(Class.class, ClassDesc.class);
 
     /**
      * Returns the E-object that a Java Class object promotes to. <p>
@@ -227,11 +226,11 @@
      * this type.
      */
     static private ClassDesc privateMake(Class clazz)
-    throws ClassNotFoundException,
-           IllegalAccessException,
-           InstantiationException,
-           InvocationTargetException,
-           NoSuchMethodException {
+      throws ClassNotFoundException,
+      IllegalAccessException,
+      InstantiationException,
+      InvocationTargetException,
+      NoSuchMethodException {
         ClassDesc result;
         //Need to synchronize since this is inter-vat mutable state
         synchronized (DescCache) {
@@ -242,15 +241,15 @@
             if (clazz.isPrimitive()) {
                 //This should only happen once, and clazz must be one of the
                 //nine primitive TYPEs below
-                DescCache.put(Boolean.TYPE,     privateMake(Boolean.class));
-                DescCache.put(Character.TYPE,   privateMake(Character.class));
-                DescCache.put(Byte.TYPE,        privateMake(Byte.class));
-                DescCache.put(Short.TYPE,       privateMake(Short.class));
-                DescCache.put(Integer.TYPE,     privateMake(Integer.class));
-                DescCache.put(Long.TYPE,        privateMake(Long.class));
-                DescCache.put(Float.TYPE,       privateMake(Float.class));
-                DescCache.put(Double.TYPE,      privateMake(Double.class));
-                DescCache.put(Void.TYPE,        privateMake(Void.class));
+                DescCache.put(Boolean.TYPE, privateMake(Boolean.class));
+                DescCache.put(Character.TYPE, privateMake(Character.class));
+                DescCache.put(Byte.TYPE, privateMake(Byte.class));
+                DescCache.put(Short.TYPE, privateMake(Short.class));
+                DescCache.put(Integer.TYPE, privateMake(Integer.class));
+                DescCache.put(Long.TYPE, privateMake(Long.class));
+                DescCache.put(Float.TYPE, privateMake(Float.class));
+                DescCache.put(Double.TYPE, privateMake(Double.class));
+                DescCache.put(Void.TYPE, privateMake(Void.class));
                 return privateMake(clazz);
             }
         }
@@ -279,7 +278,7 @@
      * For use by subclasses.  XXX should move to a more general place.
      */
     static protected void require(boolean cond, String msg) {
-        if (! cond) {
+        if (!cond) {
             throw new RuntimeException(msg);
         }
     }
@@ -299,7 +298,7 @@
      *
      */
     static private final ConstMap IntegralTypes =
-        ConstList.fromArray(IntegralTypeList).asKeys();
+      ConstList.fromArray(IntegralTypeList).asKeys();
 
     /**
      *
@@ -320,7 +319,7 @@
      *
      */
     static private final ConstMap FloatingTypes =
-        ConstList.fromArray(FloatingTypeList).asKeys();
+      ConstList.fromArray(FloatingTypeList).asKeys();
 
     /**
      *
@@ -395,16 +394,18 @@
         //It's cool even if it's -1
         specTypeName = specTypeName.substring(dot + 1);
         throw Thrower.toEject(
-            optEjector,
-            new ClassCastException(specTypeName +
-                                   " doesn't coerce to a " +
-                                   getName()));
+          optEjector,
+          new ClassCastException(specTypeName +
+                                 " doesn't coerce to a " +
+                                 getName()));
     }
 
     /**
      * Not meaningful from E, since a Class promotes to its ClassDesc anyway.
      */
-    public Class asClass() { return myClass; }
+    public Class asClass() {
+        return myClass;
+    }
 
     /**
      * Cause "myClass[5]" to return a 5 element ConstList of myClass. <p>



1.8       +8 -2      e/src/jsrc/org/erights/e/elib/base/Ejection.java

Index: Ejection.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/base/Ejection.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- Ejection.java	2001/11/09 01:17:22	1.7
+++ Ejection.java	2001/11/10 19:40:44	1.8
@@ -26,15 +26,21 @@
  * @author <a href="mailto:markm@erights.org">Mark S. Miller</a>
  */
 public class Ejection extends Throwable {
-    public Ejection() {}
-    public Ejection(String s) { super(s); }
 
+    public Ejection() {
+    }
+
+    public Ejection(String s) {
+        super(s);
+    }
+
     /**
      * Make sure to not print the stack trace that was not collected.
      */
     public void printStackTrace(java.io.PrintStream s) {
         s.println("Ejection: " + getMessage());
     }
+
     public void printStackTrace(java.io.PrintWriter s) {
         s.println("Ejection: " + getMessage());
     }



1.14      +4 -2      e/src/jsrc/org/erights/e/elib/base/Ejector.java

Index: Ejector.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/base/Ejector.java,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- Ejector.java	2001/09/06 09:55:47	1.13
+++ Ejector.java	2001/11/10 19:40:44	1.14
@@ -49,9 +49,11 @@
 public class Ejector implements OneArgFunc {
 
     private Object myResult;
+
     private Ejection myEjection = null;
 
-    public Ejector() {}
+    public Ejector() {
+    }
 
     /**
      * To avoid confusion, one should always disable an Ejector in a
@@ -78,7 +80,7 @@
      * returned.  Otherwise, the Ejection is rethrown.
      */
     public Object result(Throwable t) {
-        if (! isMine(t)) {
+        if (!isMine(t)) {
             throw ExceptionMgr.asSafe(t);
         }
         return myResult;



1.9       +22 -9     e/src/jsrc/org/erights/e/elib/base/MessageDesc.java

Index: MessageDesc.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/base/MessageDesc.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- MessageDesc.java	2001/09/07 05:49:22	1.8
+++ MessageDesc.java	2001/11/10 19:40:44	1.9
@@ -21,11 +21,11 @@
 Contributor(s): ______________________________________.
 */
 
+import org.erights.e.elib.eio.TextWriter;
 import org.erights.e.elib.prim.E;
 import org.erights.e.elib.prim.StaticMaker;
 import org.erights.e.elib.serial.Persistent;
 import org.erights.e.elib.tables.ConstList;
-import org.erights.e.elib.eio.TextWriter;
 
 import java.io.IOException;
 
@@ -39,15 +39,18 @@
      *
      */
     static public final StaticMaker MessageDescMaker =
-        StaticMaker.make(MessageDesc.class);
+      StaticMaker.make(MessageDesc.class);
 
     private String myDocComment;
+
     private String myVerb;
+
     private ConstList myParams;
+
     private Object myRetType;
 
     static /*package*/ void synopsize(TextWriter out, String str)
-    throws IOException {
+      throws IOException {
         out.print("/**");
         out.indent(" * ").lnPrint(str);
         out.lnPrint(" */");
@@ -56,18 +59,28 @@
     public MessageDesc(String docComment,
                        String verb,
                        ConstList params,
-                       Object retType)
-    {
+                       Object retType) {
         myDocComment = docComment;
         myVerb = verb;
         myParams = params;
         myRetType = retType;
     }
+
+    public String getDocComment() {
+        return myDocComment;
+    }
+
+    public String getVerb() {
+        return myVerb;
+    }
 
-    public String getDocComment() { return myDocComment; }
-    public String getVerb()       { return myVerb; }
-    public ConstList getParams()  { return myParams; }
-    public Object getReturnType() { return myRetType; }
+    public ConstList getParams() {
+        return myParams;
+    }
+
+    public Object getReturnType() {
+        return myRetType;
+    }
 
     public void printOn(TextWriter out) throws IOException {
         synopsize(out, myDocComment);



1.17      +2 -1      e/src/jsrc/org/erights/e/elib/base/MethodNode.java

Index: MethodNode.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/base/MethodNode.java,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -r1.16 -r1.17
--- MethodNode.java	2001/11/09 01:17:22	1.16
+++ MethodNode.java	2001/11/10 19:40:44	1.17
@@ -37,7 +37,8 @@
     /**
      *
      */
-    protected MethodNode() {}
+    protected MethodNode() {
+    }
 
     /**
      * Returns a message selector string (not necessarily interned).



1.9       +9 -4      e/src/jsrc/org/erights/e/elib/base/ParamDesc.java

Index: ParamDesc.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/base/ParamDesc.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- ParamDesc.java	2001/09/07 05:49:22	1.8
+++ ParamDesc.java	2001/11/10 19:40:44	1.9
@@ -21,10 +21,10 @@
 Contributor(s): ______________________________________.
 */
 
+import org.erights.e.elib.eio.TextWriter;
 import org.erights.e.elib.prim.E;
 import org.erights.e.elib.prim.StaticMaker;
 import org.erights.e.elib.serial.Persistent;
-import org.erights.e.elib.eio.TextWriter;
 
 import java.io.IOException;
 
@@ -34,10 +34,11 @@
 public class ParamDesc implements Persistent {
 
     static public final StaticMaker ParamDescMaker =
-        StaticMaker.make(ParamDesc.class);
+      StaticMaker.make(ParamDesc.class);
 
     /** @serial Writes "_" for anonymous parameter */
     private String myName;
+
     /** @serial Any object that acts like an E type */
     private Object myType;
 
@@ -56,12 +57,16 @@
     /**
      *
      */
-    public String getName() { return myName; }
+    public String getName() {
+        return myName;
+    }
 
     /**
      *
      */
-    public Object getType() { return myType; }
+    public Object getType() {
+        return myType;
+    }
 
     /**
      * Prints 'name :type'



1.28      +15 -9     e/src/jsrc/org/erights/e/elib/base/ParseNode.java

Index: ParseNode.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/base/ParseNode.java,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -r1.27 -r1.28
--- ParseNode.java	2001/11/09 01:17:22	1.27
+++ ParseNode.java	2001/11/10 19:40:44	1.28
@@ -18,18 +18,16 @@
 
 Contributor(s): ______________________________________.
 */
+
 import org.erights.e.develop.exception.ThrowableSugar;
+import org.erights.e.elib.eio.TextWriter;
 import org.erights.e.elib.quasi.MatchMaker;
 import org.erights.e.elib.tables.ConstList;
 import org.erights.e.elib.tables.FlexList;
 import org.erights.e.elib.util.AlreadyDefinedException;
-import org.erights.e.elib.eio.TextWriter;
 
 import java.io.IOException;
 
-import java.io.IOException;
-import java.io.StringWriter;
-
 /**
  * A ParseNode of a program written in "kernel E".  A program written
  * in E is immediately expanded to kernel E, hopefully passing
@@ -44,15 +42,21 @@
 
     /** lowest priority expression */
     static public final int PR_EEXPR = 0;
+
     static public final int PR_ASSIGN = 1;
+
     static public final int PR_COMP = 2;
+
     static public final int PR_ORDER = 3;
+
     static public final int PR_CALL = 4;
+
     /** highest priority expression */
     static public final int PR_PRIM = 5;
 
     /** lowest priority pattern */
     static public final int PR_PATTERN = 0;
+
     static public final int PR_LISTPATT = 1;
 
 
@@ -73,7 +77,7 @@
      * all subclasses.
      */
     public void defineSource(SourceSpan source)
-    throws AlreadyDefinedException {
+      throws AlreadyDefinedException {
         if (myOptSource != null) {
             throw new AlreadyDefinedException("source");
         }
@@ -138,7 +142,7 @@
             return false;
         }
         for (int i = 0; i < len; i++) {
-            if (! matchBind(templates[i], args, specimens[i], bindings)) {
+            if (!matchBind(templates[i], args, specimens[i], bindings)) {
                 return false;
             }
         }
@@ -164,7 +168,9 @@
     /**
      * Where is the source code this syntactic construct was parsed from?
      */
-    public SourceSpan optSource() { return myOptSource; }
+    public SourceSpan optSource() {
+        return myOptSource;
+    }
 
     /**
      * Print the left bracket, then the nodes separated by sep, and
@@ -176,7 +182,7 @@
                                    String right,
                                    TextWriter out,
                                    int priority)
-    throws IOException {
+      throws IOException {
         out.print(left);
         if (nodes.length >= 1) {
             int last = nodes.length - 1;
@@ -197,7 +203,7 @@
      * as appropriate for internal newlines.
      */
     public abstract void subPrintOn(TextWriter out, int priority)
-    throws IOException;
+      throws IOException;
 
     /**
      * Overridden in EExpr & Pattern



1.15      +32 -18    e/src/jsrc/org/erights/e/elib/base/SourceSpan.java

Index: SourceSpan.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/base/SourceSpan.java,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- SourceSpan.java	2001/11/04 00:38:11	1.14
+++ SourceSpan.java	2001/11/10 19:40:44	1.15
@@ -33,7 +33,7 @@
  * @author <a href="mailto:markm@erights.org">Mark S. Miller</a>
  */
 public class SourceSpan
-implements PassByConstruction, Persistent, Selfless {
+  implements PassByConstruction, Persistent, Selfless {
 
     static private final long serialVersionUID = -7424472535435659022L;
 
@@ -41,13 +41,18 @@
      *
      */
     static public final StaticMaker SourceSpanMaker =
-        StaticMaker.make(SourceSpan.class);
+      StaticMaker.make(SourceSpan.class);
 
     private String myUrl;
+
     private boolean myIsOneToOne;
+
     private int myStartLine;
+
     private int myStartCol;
+
     private int myEndLine;
+
     private int myEndCol;
 
     /**
@@ -55,8 +60,7 @@
      */
     public SourceSpan(String url, boolean isOneToOne,
                       int startLine, int startCol,
-                      int endLine, int endCol)
-    {
+                      int endLine, int endCol) {
         myUrl = url;
         myIsOneToOne = isOneToOne;
         myStartLine = startLine;
@@ -97,7 +101,9 @@
      * However, such issues are beyond the scope of SourceSpan or Twine by
      * themselves.  To them, the Url is simply a String.
      */
-    public String getUrl() { return myUrl; }
+    public String getUrl() {
+        return myUrl;
+    }
 
     /**
      * Does each character in that Twine map to the corresponding
@@ -108,31 +114,41 @@
      * Otherwise, all the characters in the Twine map to all the characters
      * described by this SourceSpan.
      */
-    public boolean isOneToOne() { return myIsOneToOne; }
+    public boolean isOneToOne() {
+        return myIsOneToOne;
+    }
 
     /**
      * Line number of beginning of span, in the text unit
      * (file?) described by url.  Line numbers are counted starting at 1.
      */
-    public int getStartLine() { return myStartLine; }
+    public int getStartLine() {
+        return myStartLine;
+    }
 
     /**
      * Position of first character of span within the first
      * line.  Column numbers are couunted starting at 0.
      */
-    public int getStartCol() { return myStartCol; }
+    public int getStartCol() {
+        return myStartCol;
+    }
 
     /**
      * Line number of line holding the last character of the
      * span.  Note, this is inclusive.
      */
-    public int getEndLine() { return myEndLine; }
+    public int getEndLine() {
+        return myEndLine;
+    }
 
     /**
      * Position of last character of span within this last
      * line.  Note, this is inclusive.
      */
-    public int getEndCol() { return myEndCol; }
+    public int getEndCol() {
+        return myEndCol;
+    }
 
     /**
      * Returns a new SourceSpan that covers the original two.  Either input
@@ -145,15 +161,13 @@
      */
     static public SourceSpan optCover(SourceSpan optA, SourceSpan optB) {
         if (null == optA ||
-            null == optB ||
-            ! optA.myUrl.equals(optB.myUrl))
-        {
+          null == optB ||
+          !optA.myUrl.equals(optB.myUrl)) {
             return null;
         }
         if (optA.myIsOneToOne && optB.myIsOneToOne &&
-            optA.myEndLine == optB.myStartLine &&
-            optA.myEndCol +1 == optB.myStartCol)
-        {
+          optA.myEndLine == optB.myStartLine &&
+          optA.myEndCol + 1 == optB.myStartCol) {
             return new SourceSpan(optA.myUrl, true,
                                   optA.myStartLine, optA.myStartCol,
                                   optB.myEndLine, optB.myEndCol);
@@ -215,7 +229,7 @@
             fragType = "blob";
         }
         return "<" + myUrl + "#:" + fragType +
-            "::" + myStartLine + ":" + myStartCol +
-            "::" + myEndLine + ":" + myEndCol + ">";
+          "::" + myStartLine + ":" + myStartCol +
+          "::" + myEndLine + ":" + myEndCol + ">";
     }
 }



1.15      +20 -7     e/src/jsrc/org/erights/e/elib/base/TypeDesc.java

Index: TypeDesc.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/base/TypeDesc.java,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- TypeDesc.java	2001/09/07 05:49:22	1.14
+++ TypeDesc.java	2001/11/10 19:40:44	1.15
@@ -21,6 +21,7 @@
 Contributor(s): ______________________________________.
 */
 
+import org.erights.e.elib.eio.TextWriter;
 import org.erights.e.elib.prim.E;
 import org.erights.e.elib.prim.Thrower;
 import org.erights.e.elib.serial.Persistent;
@@ -32,7 +33,6 @@
 import org.erights.e.elib.tables.ConstMap;
 import org.erights.e.elib.tables.FlexMap;
 import org.erights.e.elib.util.OneArgFunc;
-import org.erights.e.elib.eio.TextWriter;
 
 import java.io.IOException;
 
@@ -47,15 +47,17 @@
 public class TypeDesc implements Persistent, ValueGuard, SlotGuard {
 
     private String myDocComment;
+
     private String myName;
+
     private ConstList myAuditors;
+
     private ConstMap myMTypes;
 
     public TypeDesc(String docComment,
                     String optName,
                     ConstList auditors,
-                    ConstList mTypes)
-    {
+                    ConstList mTypes) {
         myDocComment = docComment;
         if (null == optName) {
             myName = "_";
@@ -73,11 +75,22 @@
         }
         myMTypes = map.snapshot();
     }
+
+    public String getDocComment() {
+        return myDocComment;
+    }
+
+    public String getName() {
+        return myName;
+    }
 
-    public String getDocComment()     { return myDocComment; }
-    public String getName()           { return myName; }
-    public ConstList getAuditors()    { return myAuditors; }
-    public ConstMap getMessageTypes() { return myMTypes; }
+    public ConstList getAuditors() {
+        return myAuditors;
+    }
+
+    public ConstMap getMessageTypes() {
+        return myMTypes;
+    }
 
     /**
      * Prints getName()



1.12      +8 -7      e/src/jsrc/org/erights/e/elib/deflect/Deflector.java

Index: Deflector.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/deflect/Deflector.java,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- Deflector.java	2001/09/08 22:59:21	1.11
+++ Deflector.java	2001/11/10 19:40:44	1.12
@@ -33,7 +33,6 @@
 import java.lang.reflect.InvocationHandler;
 import java.lang.reflect.Method;
 import java.lang.reflect.Proxy;
-import java.util.EventListener;
 
 /**
  * Deflectors enable E objects to implement Java interfaces, and thereby to
@@ -70,7 +69,7 @@
  * @author Mark S. Miller
  */
 public class Deflector
-implements InvocationHandler, PassByConstruction, Selfless, Persistent {
+  implements InvocationHandler, PassByConstruction, Selfless, Persistent {
 
     static private final long serialVersionUID = 8164442851196730818L;
 
@@ -78,7 +77,7 @@
      *
      */
     static private final StaticMaker DeflectorMaker
-        = StaticMaker.make(Deflector.class);
+      = StaticMaker.make(Deflector.class);
 
     /**
      * See the class comment about E-Interfaces
@@ -108,7 +107,7 @@
      */
     static public Object deflect(Object target, Class face) {
         target = Ref.resolution(target);
-        if (! Ref.isNear(target)) {
+        if (!Ref.isNear(target)) {
             throw new RuntimeException("can only deflect NEAR objects");
         }
 
@@ -148,7 +147,9 @@
     /**
      * The original deflected target object.
      */
-    public Callable getDeflected() { return myDeflected; }
+    public Callable getDeflected() {
+        return myDeflected;
+    }
 
     /**
      * This is the magic method invoked by the Proxy mechanism. <p>
@@ -168,7 +169,7 @@
      * @param optArgs may be null, so we replace with an empty list.
      */
     public Object invoke(Object proxy, Method method, Object[] optArgs)
-    throws Throwable {
+      throws Throwable {
 
         Object[] args = NO_ARGS;
         if (null != optArgs) {
@@ -176,7 +177,7 @@
         }
         Class clazz = method.getDeclaringClass();
         boolean isEInterface = (Object.class == clazz);
-        if (! isEInterface) {
+        if (!isEInterface) {
             for (int i = 0; i < EInterfaces.length; i++) {
                 if (EInterfaces[i] == clazz) {
                     isEInterface = true;



1.2       +1 -0      e/src/jsrc/org/erights/e/elib/eio/NonBlockingInputStream.java

Index: NonBlockingInputStream.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/eio/NonBlockingInputStream.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- NonBlockingInputStream.java	2001/09/07 05:49:22	1.1
+++ NonBlockingInputStream.java	2001/11/10 19:40:44	1.2
@@ -18,6 +18,7 @@
 
 Contributor(s): ______________________________________.
 */
+
 import java.io.FilterInputStream;
 import java.io.IOException;
 import java.io.InputStream;



1.4       +5 -5      e/src/jsrc/org/erights/e/elib/eio/TextReader.java

Index: TextReader.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/eio/TextReader.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- TextReader.java	2001/09/07 05:49:22	1.3
+++ TextReader.java	2001/11/10 19:40:44	1.4
@@ -193,7 +193,7 @@
      *
      */
     private void ensureReady() throws IOException {
-        if (! ready()) {
+        if (!ready()) {
             throw new IOException("would block");
         }
     }
@@ -207,7 +207,7 @@
         } else {
             if (0 != myNext) {
                 throw new RuntimeException
-                    ("internal: unmarked next must be 0");
+                  ("internal: unmarked next must be 0");
             }
             myOptBuf.delete(0, len);
         }
@@ -261,7 +261,7 @@
     public void reset() throws IOException {
         synchronized (lock) {
             ensureOpen();
-            if (! myIsMarked) {
+            if (!myIsMarked) {
                 throw new IOException("not marked");
             }
             myNext = 0;
@@ -326,10 +326,10 @@
     public String readText() throws IOException {
         synchronized (lock) {
             String result = readReady();
-            if (! isDone()) {
+            if (!isDone()) {
                 if (ready()) {
                     throw new RuntimeException
-                        ("internal: readReady must finish the job");
+                      ("internal: readReady must finish the job");
                 } else {
                     throw new IOException("would block");
                 }



1.3       +11 -8     e/src/jsrc/org/erights/e/elib/eio/TextWriter.java

Index: TextWriter.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/eio/TextWriter.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- TextWriter.java	2001/09/10 00:06:52	1.2
+++ TextWriter.java	2001/11/10 19:40:44	1.3
@@ -18,6 +18,7 @@
 
 Contributor(s): ______________________________________.
 */
+
 import org.erights.e.elib.prim.E;
 import org.erights.e.elib.ref.Ref;
 import org.erights.e.elib.tables.CycleBreaker;
@@ -48,8 +49,11 @@
     static private final String DEFAULT_PREFIX = "    ";
 
     private String myNewline;
+
     private boolean myAutoflush;
+
     private boolean myCloses;
+
     private CycleBreaker myCycleBreaker;
 
     /**
@@ -97,8 +101,7 @@
                       String newline,
                       boolean autoflush,
                       boolean closes,
-                      CycleBreaker optCycleBreaker)
-    {
+                      CycleBreaker optCycleBreaker) {
         super(out);
         myNewline = newline;
         myAutoflush = autoflush;
@@ -218,7 +221,7 @@
      *
      */
     public void print(Object a, Object b)
-    throws IOException {
+      throws IOException {
         print(a);
         print(b);
     }
@@ -227,7 +230,7 @@
      *
      */
     public void print(Object a, Object b, Object c)
-    throws IOException {
+      throws IOException {
         print(a);
         print(b);
         print(c);
@@ -237,7 +240,7 @@
      *
      */
     public void print(Object a, Object b, Object c, Object d)
-    throws IOException {
+      throws IOException {
         print(a);
         print(b);
         print(c);
@@ -248,7 +251,7 @@
      *
      */
     public void print(Object a, Object b, Object c, Object d, Object e)
-    throws IOException {
+      throws IOException {
         print(a);
         print(b);
         print(c);
@@ -261,7 +264,7 @@
      */
     public void print(Object a, Object b, Object c, Object d, Object e,
                       Object f)
-    throws IOException {
+      throws IOException {
         print(a);
         print(b);
         print(c);
@@ -275,7 +278,7 @@
      */
     public void print(Object a, Object b, Object c, Object d, Object e,
                       Object f, Object g)
-    throws IOException {
+      throws IOException {
         print(a);
         print(b);
         print(c);



1.3       +2 -8      e/src/jsrc/org/erights/e/elib/prim/BERunner.java

Index: BERunner.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/prim/BERunner.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- BERunner.java	2001/10/02 23:38:31	1.2
+++ BERunner.java	2001/11/10 19:40:45	1.3
@@ -20,13 +20,7 @@
 */
 
 import org.erights.e.develop.trace.Trace;
-import org.erights.e.elib.base.Thunk;
-import org.erights.e.elib.ref.Ref;
-import org.erights.e.elib.ref.Resolver;
-import org.erights.e.elib.ref.ResultResolver;
 
-import java.lang.ref.ReferenceQueue;
-
 /**
  * Runs when it can, but never on empty.  A thread services a queue
  * of Runnables.
@@ -158,8 +152,8 @@
             } catch (Throwable t) {
                 if (Trace.causality.error) {
                     Trace.causality.errorReportException(t,
-                        "Exception made it all the way out of the run " +
-                        "loop. Restarting it.");
+                                                         "Exception made it all the way out of the run " +
+                                                         "loop. Restarting it.");
                 }
             }
         }



1.10      +5 -1      e/src/jsrc/org/erights/e/elib/prim/CallThunk.java

Index: CallThunk.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/prim/CallThunk.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- CallThunk.java	2001/09/06 09:55:48	1.9
+++ CallThunk.java	2001/11/10 19:40:45	1.10
@@ -26,10 +26,13 @@
  *
  * @author <a href="mailto:markm@erights.org">Mark S. Miller</a>
  */
-/*package*/ class CallThunk implements Thunk {
+/*package*/
+class CallThunk implements Thunk {
 
     private Object myReceiver;
+
     private String myVerb;
+
     private Object[] myArgs;
 
     public CallThunk(Object receiver, String verb, Object[] args) {
@@ -37,6 +40,7 @@
         myVerb = verb;
         myArgs = args;
     }
+
     public Object run() {
         return E.callAll(myReceiver, myVerb, myArgs);
     }



1.15      +5 -4      e/src/jsrc/org/erights/e/elib/prim/ConstructorNode.java

Index: ConstructorNode.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/prim/ConstructorNode.java,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- ConstructorNode.java	2001/09/06 09:55:48	1.14
+++ ConstructorNode.java	2001/11/10 19:40:45	1.15
@@ -32,7 +32,8 @@
  *
  * @author <a href="mailto:markm@erights.org">Mark S. Miller</a>
  */
-/*package*/ class ConstructorNode extends JavaMemberNode {
+/*package*/
+class ConstructorNode extends JavaMemberNode {
 
 
     /**
@@ -48,8 +49,8 @@
     static public void defineMembers(VTable vTable,
                                      Class clazz,
                                      ConstMap optSafeJ)
-    throws AlreadyDefinedException {
-        if (! Modifier.isPublic(clazz.getModifiers())) {
+      throws AlreadyDefinedException {
+        if (!Modifier.isPublic(clazz.getModifiers())) {
             return;
         }
         Constructor[] constrs = clazz.getConstructors();
@@ -70,7 +71,7 @@
      *
      */
     protected Object innerExecute(Object self, Object[] args)
-    throws Exception {
+      throws Exception {
         return ((Constructor)member()).newInstance(args);
     }
 



1.60      +27 -45    e/src/jsrc/org/erights/e/elib/prim/E.java

Index: E.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/prim/E.java,v
retrieving revision 1.59
retrieving revision 1.60
diff -u -r1.59 -r1.60
--- E.java	2001/10/01 08:31:05	1.59
+++ E.java	2001/11/10 19:40:45	1.60
@@ -29,7 +29,6 @@
 import org.erights.e.elib.ref.Resolver;
 import org.erights.e.elib.tables.Twine;
 import org.erights.e.elib.util.OneArgFunc;
-import org.erights.e.elib.util.TwineException;
 
 import java.io.StringWriter;
 
@@ -61,7 +60,8 @@
     static private final Object[] NO_ARGS = new Object[0];
 
     /** prevent instantiation */
-    private E() {}
+    private E() {
+    }
 
     /**
      * A 0-argument immediate call
@@ -78,8 +78,7 @@
      * @see #callAll(Object, String, Object[])
      */
     static public Object call(Object rec, String verb,
-                              Object arg1)
-    {
+                              Object arg1) {
         Object[] args = { arg1 };
         return callAll(rec, verb, args);
     }
@@ -91,8 +90,7 @@
      */
     static public Object call(Object rec, String verb,
                               Object arg1,
-                              Object arg2)
-    {
+                              Object arg2) {
         Object[] args = { arg1, arg2 };
         return callAll(rec, verb, args);
     }
@@ -105,8 +103,7 @@
     static public Object call(Object rec, String verb,
                               Object arg1,
                               Object arg2,
-                              Object arg3)
-    {
+                              Object arg3) {
         Object[] args = { arg1, arg2, arg3 };
         return callAll(rec, verb, args);
     }
@@ -120,8 +117,7 @@
                               Object arg1,
                               Object arg2,
                               Object arg3,
-                              Object arg4)
-    {
+                              Object arg4) {
         Object[] args = { arg1, arg2, arg3, arg4 };
         return callAll(rec, verb, args);
     }
@@ -136,8 +132,7 @@
      */
     static public Object callAll(Object rec,
                                  String verb,
-                                 Object[] args)
-    {
+                                 Object[] args) {
         if (rec instanceof Callable) {
             return ((Callable)rec).callAll(verb, args);
         }
@@ -163,8 +158,7 @@
     static /*package*/ void callAll(Object rec,
                                     Resolver resolver,
                                     String verb,
-                                    Object[] args)
-    {
+                                    Object[] args) {
         Object value;
         try {
             value = callAll(rec, verb, args);
@@ -201,10 +195,10 @@
         int okStrLen = Math.max(budget[0] - bufLen, 9);
 
         if (okStrLen < strLen) {
-            int segLen = okStrLen/2 - 2;
+            int segLen = okStrLen / 2 - 2;
             str = str.substring(0, segLen)
-                  + "..."
-                  + str.substring(strLen - segLen);
+              + "..."
+              + str.substring(strLen - segLen);
         }
         buf.append(str);
     }
@@ -232,8 +226,7 @@
     static public RuntimeException backtrace(Throwable ex,
                                              Object rec,
                                              String verb,
-                                             Object[] args)
-    {
+                                             Object[] args) {
         if (Backtracing) {
             return new NestedException("...", ex);
         }
@@ -248,7 +241,7 @@
                    toQuote(rec).bare(),
                    budget);
 
-            if (! "run".equals(verb)) {
+            if (!"run".equals(verb)) {
                 abbrev(buf,
                        " " + verb,
                        budget);
@@ -256,13 +249,13 @@
             buf.append('(');
 
             if (args.length >= 1) {
-                for (int i = 0; i < args.length -1; i++) {
+                for (int i = 0; i < args.length - 1; i++) {
                     abbrev(buf,
                            toQuote(args[i]).bare() + ", ",
                            budget);
                 }
                 abbrev(buf,
-                       toQuote(args[args.length -1]).bare(),
+                       toQuote(args[args.length - 1]).bare(),
                        budget);
             }
             buf.append(')');
@@ -292,8 +285,7 @@
      * @see #sendAll(Object, String, Object[])
      */
     static public Ref send(Object rec, String verb,
-                           Object arg1)
-    {
+                           Object arg1) {
         Object[] args = { arg1 };
         return sendAll(rec, verb, args);
     }
@@ -305,8 +297,7 @@
      */
     static public Ref send(Object rec, String verb,
                            Object arg1,
-                           Object arg2)
-    {
+                           Object arg2) {
         Object[] args = { arg1, arg2 };
         return sendAll(rec, verb, args);
     }
@@ -319,8 +310,7 @@
     static public Ref send(Object rec, String verb,
                            Object arg1,
                            Object arg2,
-                           Object arg3)
-    {
+                           Object arg3) {
         Object[] args = { arg1, arg2, arg3 };
         return sendAll(rec, verb, args);
     }
@@ -334,8 +324,7 @@
                            Object arg1,
                            Object arg2,
                            Object arg3,
-                           Object arg4)
-    {
+                           Object arg4) {
         Object[] args = { arg1, arg2, arg3, arg4 };
         return sendAll(rec, verb, args);
     }
@@ -377,8 +366,7 @@
     static private void sendAll(Object rec,
                                 Resolver optResolver,
                                 String verb,
-                                Object[] args)
-    {
+                                Object[] args) {
         if (null == optResolver) {
             //XXX the code used to check if optResolver was a ResultResolver
             //wrapping null, in which case it would also sendAllOnly.  Should
@@ -404,8 +392,7 @@
      * @see #sendAllOnly(Object, String, Object[])
      */
     static public void sendOnly(Object rec, String verb,
-                                Object arg1)
-    {
+                                Object arg1) {
         Object[] args = { arg1 };
         sendAllOnly(rec, verb, args);
     }
@@ -417,8 +404,7 @@
      */
     static public void sendOnly(Object rec, String verb,
                                 Object arg1,
-                                Object arg2)
-    {
+                                Object arg2) {
         Object[] args = { arg1, arg2 };
         sendAllOnly(rec, verb, args);
     }
@@ -431,8 +417,7 @@
     static public void sendOnly(Object rec, String verb,
                                 Object arg1,
                                 Object arg2,
-                                Object arg3)
-    {
+                                Object arg3) {
         Object[] args = { arg1, arg2, arg3 };
         sendAllOnly(rec, verb, args);
     }
@@ -446,8 +431,7 @@
                                 Object arg1,
                                 Object arg2,
                                 Object arg3,
-                                Object arg4)
-    {
+                                Object arg4) {
         Object[] args = { arg1, arg2, arg3, arg4 };
         sendAllOnly(rec, verb, args);
     }
@@ -463,8 +447,7 @@
      */
     static public void sendAllOnly(Object rec,
                                    String verb,
-                                   Object[] args)
-    {
+                                   Object[] args) {
         if (rec instanceof Ref) {
             ((Ref)rec).sendAllOnly(verb, args);
         } else {
@@ -542,10 +525,9 @@
      */
     static public Object as(Object specimen,
                             Class targType,
-                            OneArgFunc optEjector)
-    {
+                            OneArgFunc optEjector) {
         specimen = Ref.resolution(specimen);
-        if (null == specimen && ! targType.isPrimitive()) {
+        if (null == specimen && !targType.isPrimitive()) {
             return null;
         }
         return ClassDesc.make(targType).coerce(specimen, optEjector);



1.2       +2 -1      e/src/jsrc/org/erights/e/elib/prim/FEProblemHandler.java

Index: FEProblemHandler.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/prim/FEProblemHandler.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- FEProblemHandler.java	2001/11/06 06:48:30	1.1
+++ FEProblemHandler.java	2001/11/10 19:40:45	1.2
@@ -14,7 +14,8 @@
      * As mandated by JDK1.3's {@link
      * java.awt.EventDispatchThread#handleException(Throwable)}
      */
-    public FEProblemHandler() {}
+    public FEProblemHandler() {
+    }
 
     /**
      * As mandated by JDK1.3's {@link



1.2       +6 -12     e/src/jsrc/org/erights/e/elib/prim/FERunner.java

Index: FERunner.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/prim/FERunner.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- FERunner.java	2001/09/14 01:35:22	1.1
+++ FERunner.java	2001/11/10 19:40:45	1.2
@@ -19,13 +19,6 @@
 Contributor(s): ______________________________________.
 */
 
-import org.erights.e.develop.trace.Trace;
-import org.erights.e.elib.base.Thunk;
-import org.erights.e.elib.ref.Ref;
-import org.erights.e.elib.ref.Resolver;
-import org.erights.e.elib.ref.ResultResolver;
-
-import java.lang.ref.ReferenceQueue;
 import java.awt.EventQueue;
 import java.awt.Toolkit;
 
@@ -41,7 +34,8 @@
       new FERunner("AWT Runner");
 
     /**
-    /*package*/ long myServingTicket = -1;
+     /*package*/
+    long myServingTicket = -1;
 
     /**
      * Makes a Runner, and starts the thread that services its queue.
@@ -78,10 +72,10 @@
     }
 
     /**
-         * Has an orderlyShutdown been requested?
-         * <p>
-         * The FERunner always says <code>false</code>
-         */
+     * Has an orderlyShutdown been requested?
+     * <p>
+     * The FERunner always says <code>false</code>
+     */
     /*package*/ boolean isShuttingDown() {
         return false;
     }



1.2       +6 -5      e/src/jsrc/org/erights/e/elib/prim/FERunnerEvent.java

Index: FERunnerEvent.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/prim/FERunnerEvent.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- FERunnerEvent.java	2001/09/14 01:35:22	1.1
+++ FERunnerEvent.java	2001/11/10 19:40:45	1.2
@@ -23,8 +23,8 @@
 
 import org.erights.e.develop.trace.Trace;
 
-import java.awt.ActiveEvent;
 import java.awt.AWTEvent;
+import java.awt.ActiveEvent;
 import java.awt.event.PaintEvent;
 
 
@@ -35,8 +35,9 @@
  * @author <a href="mailto:markm@caplet.com">Mark S Miller</a>
  * @author <a href="mailto:tstanley@cocoon.com">Terry Stanley</a>
  */
-/*package*/ class FERunnerEvent
-extends AWTEvent implements ActiveEvent {
+/*package*/
+class FERunnerEvent
+  extends AWTEvent implements ActiveEvent {
 
     /**
      *
@@ -68,8 +69,8 @@
         } catch (Throwable t) {
             if (Trace.causality.error) {
                 Trace.causality.errorReportException(t,
-                    "Exception made it all the way out of the awt run " +
-                    "loop. Continuing anyway.");
+                                                     "Exception made it all the way out of the awt run " +
+                                                     "loop. Continuing anyway.");
             }
         } finally {
             FERunner.THE_ONE.myServingTicket = -1;



1.14      +9 -8      e/src/jsrc/org/erights/e/elib/prim/InstanceMethodNode.java

Index: InstanceMethodNode.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/prim/InstanceMethodNode.java,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- InstanceMethodNode.java	2001/09/06 09:55:48	1.13
+++ InstanceMethodNode.java	2001/11/10 19:40:45	1.14
@@ -32,7 +32,8 @@
  *
  * @author <a href="mailto:markm@erights.org">Mark S. Miller</a>
  */
-/*package*/ class InstanceMethodNode extends JavaMemberNode {
+/*package*/
+class InstanceMethodNode extends JavaMemberNode {
 
     /**
      *
@@ -50,15 +51,15 @@
     static public void defineMembers(VTable vTable,
                                      Class clazz,
                                      ConstMap optSafeJ)
-    throws AlreadyDefinedException {
-        if (! Modifier.isPublic(clazz.getModifiers())) {
+      throws AlreadyDefinedException {
+        if (!Modifier.isPublic(clazz.getModifiers())) {
             return;
         }
         Method[] meths = clazz.getDeclaredMethods();
         if (null != meths) {
             for (int i = 0; i < meths.length; i++) {
                 int mods = meths[i].getModifiers();
-                if (Modifier.isPublic(mods) && ! Modifier.isStatic(mods)) {
+                if (Modifier.isPublic(mods) && !Modifier.isStatic(mods)) {
                     MethodNode meth = new InstanceMethodNode(meths[i]);
                     vTable.addMethod(meth, optSafeJ);
                 }
@@ -68,11 +69,11 @@
         if (null != fields) {
             for (int i = 0; i < fields.length; i++) {
                 int mods = fields[i].getModifiers();
-                if (Modifier.isPublic(mods) && ! Modifier.isStatic(mods)) {
+                if (Modifier.isPublic(mods) && !Modifier.isStatic(mods)) {
                     MethodNode field = new VarGetterNode(fields[i]);
                     vTable.addMethod(field, optSafeJ);
 
-                    if (! Modifier.isFinal(mods)) {
+                    if (!Modifier.isFinal(mods)) {
                         field = new VarSetterNode(fields[i]);
                         vTable.addMethod(field, optSafeJ);
                     }
@@ -86,14 +87,14 @@
      */
     protected String explain(String args) {
         return "<a " + member().getDeclaringClass().getName() + ">."
-                + verb() + "(" + args + ")";
+          + verb() + "(" + args + ")";
     }
 
     /**
      *
      */
     protected Object innerExecute(Object self, Object[] args)
-    throws Exception {
+      throws Exception {
         return ((Method)member()).invoke(self, args);
     }
 



1.29      +11 -7     e/src/jsrc/org/erights/e/elib/prim/JavaMemberNode.java

Index: JavaMemberNode.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/prim/JavaMemberNode.java,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -r1.28 -r1.29
--- JavaMemberNode.java	2001/11/09 01:17:22	1.28
+++ JavaMemberNode.java	2001/11/10 19:40:45	1.29
@@ -18,6 +18,7 @@
 
 Contributor(s): ______________________________________.
 */
+
 import org.erights.e.develop.exception.ExceptionMgr;
 import org.erights.e.elib.base.Ejector;
 import org.erights.e.elib.base.MethodNode;
@@ -40,7 +41,9 @@
 public abstract class JavaMemberNode extends MethodNode {
 
     private Member myMember;
+
     private boolean myOkCoverageFlag = false;
+
     private boolean myBadCoverageFlag = false;
 
     /**
@@ -169,7 +172,7 @@
      *
      */
     protected abstract Object innerExecute(Object self, Object[] args)
-    throws Exception;
+      throws Exception;
 
     /**
      * XXX Security alert: covert channel?
@@ -190,8 +193,7 @@
      */
     public boolean matchBind(Object[] args,
                              Object specimen,
-                             FlexList bindings)
-    {
+                             FlexList bindings) {
         JavaMemberNode other;
         if (getClass().isInstance(specimen)) {
             other = (JavaMemberNode)Ref.resolution(specimen);
@@ -204,7 +206,9 @@
     /**
      *
      */
-    protected Member member() { return myMember; }
+    protected Member member() {
+        return myMember;
+    }
 
     /**
      *
@@ -216,7 +220,7 @@
      */
     public void subPrintOn(TextWriter out, int priority) throws IOException {
         out.print("to " + verb());
-        int highParam = arity() -1;
+        int highParam = arity() - 1;
         String args = "";
         for (int i = 0; i < highParam; i++) {
             args += " p" + i + ",";
@@ -225,7 +229,7 @@
             args += " p" + highParam;
         }
         out.print(args + " {");
-        out.indent().lnPrint("java : \"" + explain(args.trim()) +  "\"");
+        out.indent().lnPrint("java : \"" + explain(args.trim()) + "\"");
         out.lnPrint("}");
     }
 
@@ -246,7 +250,7 @@
             int lastDot = name.lastIndexOf('.');
             //if there are no dots then lastIndexOf() returns -1, so the +1
             //below will still do the correct thing.
-            return name.substring(lastDot +1);
+            return name.substring(lastDot + 1);
         }
     }
 }



1.14      +3 -2      e/src/jsrc/org/erights/e/elib/prim/Message.java

Index: Message.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/prim/Message.java,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- Message.java	2001/09/07 05:49:22	1.13
+++ Message.java	2001/11/10 19:40:45	1.14
@@ -37,7 +37,9 @@
 public class Message {
 
     private Resolver myResolver;
+
     private String myVerb;
+
     private Object[] myArgs;
 
     /**
@@ -45,8 +47,7 @@
      */
     public Message(Resolver optResolver,
                    String verb,
-                   Object[] args)
-    {
+                   Object[] args) {
         myResolver = ResultResolver.make(Runner.currentRunner(), optResolver);
         myVerb = verb;
         myArgs = args;



1.41      +7 -8      e/src/jsrc/org/erights/e/elib/prim/MirandaMethods.java

Index: MirandaMethods.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/prim/MirandaMethods.java,v
retrieving revision 1.40
retrieving revision 1.41
diff -u -r1.40 -r1.41
--- MirandaMethods.java	2001/09/23 05:14:48	1.40
+++ MirandaMethods.java	2001/11/10 19:40:45	1.41
@@ -24,10 +24,10 @@
 import org.erights.e.elib.base.Callable;
 import org.erights.e.elib.base.ClassDesc;
 import org.erights.e.elib.base.Ejection;
-import org.erights.e.elib.eio.EPrintable;
 import org.erights.e.elib.base.Script;
-import org.erights.e.elib.eio.TextWriter;
 import org.erights.e.elib.base.TypeDesc;
+import org.erights.e.elib.eio.EPrintable;
+import org.erights.e.elib.eio.TextWriter;
 import org.erights.e.elib.ref.Resolver;
 import org.erights.e.elib.sealing.Amplifiable;
 import org.erights.e.elib.sealing.Brand;
@@ -46,7 +46,8 @@
 public class MirandaMethods {
 
     /** prevents instantiation */
-    private MirandaMethods() {}
+    private MirandaMethods() {
+    }
 
     /**
      * For sending messages contingent on an earier success.
@@ -107,8 +108,7 @@
      */
     static public Object[] order(Object self,
                                  String nestedVerb,
-                                 Object[] nestedArgs)
-    {
+                                 Object[] nestedArgs) {
         Object[] result = {
             E.callAll(self, nestedVerb, nestedArgs),
             self
@@ -128,8 +128,7 @@
     static public Object order(Object self,
                                String nestedVerb,
                                Object[] nestedArgs,
-                               Resolver after)
-    {
+                               Resolver after) {
         Object result = null;
         try {
             result = E.callAll(self, nestedVerb, nestedArgs);
@@ -210,7 +209,7 @@
      * String.valueOf(self) is java's null-safe form of self.toString();
      */
     static public void printOn(Object self, TextWriter out)
-    throws IOException {
+      throws IOException {
         if (self instanceof Throwable) {
             Throwable leaf = ThrowableSugar.leaf((Throwable)self);
             if (leaf instanceof EPrintable) {



1.5       +2 -2      e/src/jsrc/org/erights/e/elib/prim/NowRunnable.java

Index: NowRunnable.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/prim/NowRunnable.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- NowRunnable.java	2001/10/03 18:05:28	1.4
+++ NowRunnable.java	2001/11/10 19:40:45	1.5
@@ -22,7 +22,6 @@
 */
 
 import org.erights.e.develop.exception.ExceptionMgr;
-import org.erights.e.elib.base.Thunk;
 
 /**
  * Used for Runner.now(). <p>
@@ -31,7 +30,8 @@
  * @author E-Dean Tribble
  * @author Mark S. Miller
  */
-/*package*/ class NowRunnable implements Runnable {
+/*package*/
+class NowRunnable implements Runnable {
 
     /**
      * Acts as a condition variable on "null == myOptTodo"



1.9       +7 -7      e/src/jsrc/org/erights/e/elib/prim/OverloaderNode.java

Index: OverloaderNode.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/prim/OverloaderNode.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- OverloaderNode.java	2001/09/07 05:49:22	1.8
+++ OverloaderNode.java	2001/11/10 19:40:45	1.9
@@ -20,6 +20,7 @@
 
 Contributor(s): ______________________________________.
 */
+
 import org.erights.e.elib.base.MethodNode;
 import org.erights.e.elib.eio.TextWriter;
 import org.erights.e.elib.tables.FlexList;
@@ -108,9 +109,9 @@
                 index = i;
             } else {
                 throw new IllegalArgumentException
-                    ("Ambiguous overload on " + self.getClass() + ": " +
-                     myNodes[index].optTypedVerb() + " vs " +
-                     myNodes[i].optTypedVerb());
+                  ("Ambiguous overload on " + self.getClass() + ": " +
+                   myNodes[index].optTypedVerb() + " vs " +
+                   myNodes[i].optTypedVerb());
             }
         }
         if (null == optNewArgs) {
@@ -125,10 +126,9 @@
      */
     public boolean matchBind(Object[] args,
                              Object specimen,
-                             FlexList bindings)
-    {
+                             FlexList bindings) {
         throw new RuntimeException
-            ("XXX OverloaderNode matchBind not yet implemented");
+          ("XXX OverloaderNode matchBind not yet implemented");
     }
 
     /**
@@ -136,7 +136,7 @@
      */
     public void subPrintOn(TextWriter out, int priority) throws IOException {
         out.print("to " + verb());
-        int highParam = arity() -1;
+        int highParam = arity() - 1;
         String args = "";
         for (int i = 0; i < highParam; i++) {
             args += " p" + i + ",";



1.13      +4 -2      e/src/jsrc/org/erights/e/elib/prim/PendingEvent.java

Index: PendingEvent.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/prim/PendingEvent.java,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- PendingEvent.java	2001/09/06 09:55:48	1.12
+++ PendingEvent.java	2001/11/10 19:40:45	1.13
@@ -37,8 +37,11 @@
 public class PendingEvent implements Runnable {
 
     private Object myReceiver;
+
     private Resolver myResolver;
+
     private String myVerb;
+
     private Object[] myArgs;
 
     /**
@@ -47,8 +50,7 @@
     public PendingEvent(Object rec,
                         Resolver resolver,
                         String verb,
-                        Object[] args)
-    {
+                        Object[] args) {
         myReceiver = rec;
         myResolver = resolver;
         myVerb = verb;



1.10      +5 -0      e/src/jsrc/org/erights/e/elib/prim/Queue.java

Index: Queue.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/prim/Queue.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- Queue.java	2001/09/07 05:49:22	1.9
+++ Queue.java	2001/11/10 19:40:45	1.10
@@ -18,6 +18,7 @@
 
 Contributor(s): ______________________________________.
 */
+
 import java.lang.reflect.Array;
 import java.util.Enumeration;
 import java.util.NoSuchElementException;
@@ -44,9 +45,13 @@
     static private final int INITIAL_SIZE = 400;
 
     private Object[] myStuff;
+
     private int myMaxSize;
+
     private int myCurSize;
+
     private int myOut;
+
     private int myIn;
 
     /**



1.30      +0 -1      e/src/jsrc/org/erights/e/elib/prim/Runner.java

Index: Runner.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/prim/Runner.java,v
retrieving revision 1.29
retrieving revision 1.30
diff -u -r1.29 -r1.30
--- Runner.java	2001/10/03 18:05:28	1.29
+++ Runner.java	2001/11/10 19:40:45	1.30
@@ -19,7 +19,6 @@
 Contributor(s): ______________________________________.
 */
 
-import org.erights.e.elib.base.Thunk;
 import org.erights.e.elib.ref.Ref;
 import org.erights.e.elib.ref.Resolver;
 import org.erights.e.elib.ref.ResultResolver;



1.8       +2 -1      e/src/jsrc/org/erights/e/elib/prim/RunnerThread.java

Index: RunnerThread.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/prim/RunnerThread.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- RunnerThread.java	2001/09/06 09:55:48	1.7
+++ RunnerThread.java	2001/11/10 19:40:45	1.8
@@ -25,7 +25,8 @@
  *
  * @author <a href="mailto:markm@erights.org">Mark S. Miller</a>
  */
-/*package*/ class RunnerThread extends Thread {
+/*package*/
+class RunnerThread extends Thread {
 
     /*package*/ Runnable myRunnable;
 



1.3       +5 -3      e/src/jsrc/org/erights/e/elib/prim/SacrificialComponent.java

Index: SacrificialComponent.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/prim/SacrificialComponent.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- SacrificialComponent.java	2001/10/02 23:38:31	1.2
+++ SacrificialComponent.java	2001/11/10 19:40:45	1.3
@@ -1,7 +1,7 @@
 package org.erights.e.elib.prim;
 
-import java.awt.Component;
 import java.awt.AWTEvent;
+import java.awt.Component;
 
 /*
 The contents of this file are subject to the Improvements to the
@@ -30,7 +30,8 @@
  * @author <a href="mailto:markm@caplet.com">Mark S Miller</a>
  * @author <a href="mailto:tstanley@cocoon.com">Terry Stanley</a>
  */
-/*package*/ class SacrificialComponent extends Component {
+/*package*/
+class SacrificialComponent extends Component {
 
     /**
      *
@@ -41,7 +42,8 @@
     /**
      *
      */
-    private SacrificialComponent() {}
+    private SacrificialComponent() {
+    }
 
     /**
      *



1.38      +21 -21    e/src/jsrc/org/erights/e/elib/prim/ScriptMaker.java

Index: ScriptMaker.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/prim/ScriptMaker.java,v
retrieving revision 1.37
retrieving revision 1.38
diff -u -r1.37 -r1.38
--- ScriptMaker.java	2001/10/02 23:38:31	1.37
+++ ScriptMaker.java	2001/11/10 19:40:45	1.38
@@ -97,48 +97,48 @@
      */
     static private final String[][] Sugarings = {
         { "java.lang.Boolean",
-          "org.erights.e.meta.java.lang.BooleanSugar" },
+            "org.erights.e.meta.java.lang.BooleanSugar" },
         { "java.lang.Character",
-          "org.erights.e.meta.java.lang.CharacterSugar" },
+            "org.erights.e.meta.java.lang.CharacterSugar" },
         { "java.lang.Process",
-          "org.erights.e.meta.java.lang.ProcessSugar" },
+            "org.erights.e.meta.java.lang.ProcessSugar" },
         { "java.lang.StringBuffer",
-          "org.erights.e.meta.java.lang.StringBufferSugar" },
+            "org.erights.e.meta.java.lang.StringBufferSugar" },
         { "java.lang.Throwable",
-          //Note the irregular location!
-          "org.erights.e.develop.exception.ThrowableSugar" },
+            //Note the irregular location!
+            "org.erights.e.develop.exception.ThrowableSugar" },
 
         { "java.math.BigInteger",
-          "org.erights.e.meta.java.math.BigIntegerSugar" },
+            "org.erights.e.meta.java.math.BigIntegerSugar" },
         { "java.lang.Double",
-          "org.erights.e.meta.java.lang.DoubleSugar" },
+            "org.erights.e.meta.java.lang.DoubleSugar" },
 
         { "java.io.BufferedReader",
-          "org.erights.e.meta.java.io.BufferedReaderSugar" },
+            "org.erights.e.meta.java.io.BufferedReaderSugar" },
         { "java.io.File",
-          "org.erights.e.meta.java.io.FileSugar" },
+            "org.erights.e.meta.java.io.FileSugar" },
         { "java.io.InputStream",
-          "org.erights.e.meta.java.io.InputStreamSugar" },
+            "org.erights.e.meta.java.io.InputStreamSugar" },
         { "java.io.Reader",
-          "org.erights.e.meta.java.io.ReaderSugar" },
+            "org.erights.e.meta.java.io.ReaderSugar" },
 
         { "java.util.Dictionary",
-          "org.erights.e.meta.java.util.DictionarySugar" },
+            "org.erights.e.meta.java.util.DictionarySugar" },
         { "java.util.Enumeration",
-          "org.erights.e.meta.java.util.EnumerationSugar" },
+            "org.erights.e.meta.java.util.EnumerationSugar" },
         { "java.util.Vector",
-          "org.erights.e.meta.java.util.VectorSugar" },
+            "org.erights.e.meta.java.util.VectorSugar" },
 
         { "java.net.URL",
-          "org.erights.e.meta.java.net.URLSugar" },
+            "org.erights.e.meta.java.net.URLSugar" },
 
         { "java.awt.Component",
-          "org.erights.e.meta.java.awt.ComponentSugar" },
+            "org.erights.e.meta.java.awt.ComponentSugar" },
         { "java.awt.Container",
-          "org.erights.e.meta.java.awt.ContainerSugar" },
+            "org.erights.e.meta.java.awt.ContainerSugar" },
 
         { "java.awt.event.WindowEvent",
-          "org.erights.e.meta.java.awt.event.WindowEventSugar" }
+            "org.erights.e.meta.java.awt.event.WindowEventSugar" }
     };
 
     /**
@@ -178,14 +178,14 @@
         //don't need to list notify(), notifyAll() or the various wait()s,
         //since they're final
         "compareTo(Object)" //removed under the assumption that there's
-                            //always a type specific overload
+        //always a type specific overload
     };
 
     /**
      *
      */
     static private final ConstMap AlwaysRemoveSet =
-        ConstList.fromArray(ALWAYS_REMOVE).asKeys();
+      ConstList.fromArray(ALWAYS_REMOVE).asKeys();
 
     /**
      *



1.7       +9 -4      e/src/jsrc/org/erights/e/elib/prim/ShutDownVatException.java

Index: ShutDownVatException.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/prim/ShutDownVatException.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- ShutDownVatException.java	2001/09/06 09:55:48	1.6
+++ ShutDownVatException.java	2001/11/10 19:40:45	1.7
@@ -25,11 +25,16 @@
  *
  * @author <a href="mailto:markm@erights.org">Mark S. Miller</a>
  */
-/*package*/ class ShutDownVatException
-extends RuntimeException implements Runnable {
+/*package*/
+class ShutDownVatException
+  extends RuntimeException implements Runnable {
 
-    public ShutDownVatException() {}
-    public ShutDownVatException(String m) { super(m); }
+    public ShutDownVatException() {
+    }
+
+    public ShutDownVatException(String m) {
+        super(m);
+    }
 
     /**
      *



1.22      +5 -4      e/src/jsrc/org/erights/e/elib/prim/StaticMaker.java

Index: StaticMaker.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/prim/StaticMaker.java,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -r1.21 -r1.22
--- StaticMaker.java	2001/10/27 17:27:43	1.21
+++ StaticMaker.java	2001/11/10 19:40:45	1.22
@@ -45,7 +45,7 @@
  * @author <a href="mailto:markm@erights.org">Mark S. Miller</a>
  */
 public class StaticMaker
-implements Callable, PassByConstruction, Persistent {
+  implements Callable, PassByConstruction, Persistent {
 
     /**
      *
@@ -139,7 +139,7 @@
      */
     static private final String[][] Sugarings = {
         { "java.math.BigInteger",
-          "org.erights.e.meta.java.math.BigIntegerMakerSugar" }
+            "org.erights.e.meta.java.math.BigIntegerMakerSugar" }
     };
 
     /**
@@ -153,13 +153,13 @@
      *
      */
     static private final FlexMap MakerCache =
-        FlexMap.fromTypes(Class.class, StaticMaker.class);
+      FlexMap.fromTypes(Class.class, StaticMaker.class);
 
     /**
      * Add methods for sugaring the class's maker behavior
      */
     static private Class OptSugar(Class clazz)
-    throws AlreadyDefinedException {
+      throws AlreadyDefinedException {
         if (null == TheSugars) {
             TheSugars = FlexMap.fromPairs(Sugarings, true).snapshot();
         }
@@ -177,6 +177,7 @@
 
 
     private Class myClass;
+
     private transient VTable myVTable;
 
     /**



1.18      +9 -7      e/src/jsrc/org/erights/e/elib/prim/StaticMethodNode.java

Index: StaticMethodNode.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/prim/StaticMethodNode.java,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -r1.17 -r1.18
--- StaticMethodNode.java	2001/09/06 09:55:48	1.17
+++ StaticMethodNode.java	2001/11/10 19:40:45	1.18
@@ -33,9 +33,11 @@
  *
  * @author <a href="mailto:markm@erights.org">Mark S. Miller</a>
  */
-/*package*/ class StaticMethodNode extends JavaMemberNode {
+/*package*/
+class StaticMethodNode extends JavaMemberNode {
 
     static private final MethodNode TheTypeVerb = wrapMethod("asType");
+
     static private final MethodNode TheToStringVerb = wrapMethod("toString");
 
     /**
@@ -43,7 +45,7 @@
      */
     public StaticMethodNode(Method method) {
         super(method);
-        if (! Modifier.isStatic(method.getModifiers())) {
+        if (!Modifier.isStatic(method.getModifiers())) {
             throw new Error("internal: not a static method");
         }
     }
@@ -54,8 +56,8 @@
     static public void defineMembers(VTable vTable,
                                      Class clazz,
                                      ConstMap optSafeJ)
-    throws AlreadyDefinedException {
-        if (! Modifier.isPublic(clazz.getModifiers())) {
+      throws AlreadyDefinedException {
+        if (!Modifier.isPublic(clazz.getModifiers())) {
             return;
         }
         Method[] meths = clazz.getDeclaredMethods();
@@ -76,7 +78,7 @@
                     MethodNode field = new VarGetterNode(fields[i]);
                     vTable.addMethod(field, optSafeJ);
 
-                    if (! Modifier.isFinal(mods)) {
+                    if (!Modifier.isFinal(mods)) {
                         field = new VarSetterNode(fields[i]);
                         vTable.addMethod(field, optSafeJ);
                     }
@@ -92,14 +94,14 @@
      */
     protected String explain(String args) {
         return member().getDeclaringClass().getName() + "."
-                + verb() + "(" + args + ")";
+          + verb() + "(" + args + ")";
     }
 
     /**
      *
      */
     protected Object innerExecute(Object self, Object[] args)
-    throws Exception {
+      throws Exception {
         return ((Method)member()).invoke(null, args);
     }
 



1.18      +10 -9     e/src/jsrc/org/erights/e/elib/prim/SugarMethodNode.java

Index: SugarMethodNode.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/prim/SugarMethodNode.java,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -r1.17 -r1.18
--- SugarMethodNode.java	2001/09/07 05:49:22	1.17
+++ SugarMethodNode.java	2001/11/10 19:40:45	1.18
@@ -39,6 +39,7 @@
  * @author <a href="mailto:markm@erights.org">Mark S. Miller</a>
  */
 public class SugarMethodNode extends JavaMemberNode {
+
     private boolean printOkFlag = false;
 
     /**
@@ -46,7 +47,7 @@
      */
     public SugarMethodNode(Method method) {
         super(method);
-        if (! Modifier.isStatic(method.getModifiers())) {
+        if (!Modifier.isStatic(method.getModifiers())) {
             throw new Error("internal: not a static method");
         }
     }
@@ -55,7 +56,7 @@
      *
      */
     static public void defineMembers(VTable vTable, Class clazz)
-    throws AlreadyDefinedException {
+      throws AlreadyDefinedException {
         Method[] meths = clazz.getMethods();
         for (int i = 0; i < meths.length; i++) {
             if (Modifier.isStatic(meths[i].getModifiers())) {
@@ -75,7 +76,7 @@
      */
     static /*package*/ ConstMap optSafeJ(Class clazz) {
         String[] optTypedVerbs =
-            (String[])getStaticValue(clazz, "SAFEJ", null);
+          (String[])getStaticValue(clazz, "SAFEJ", null);
         if (null == optTypedVerbs) {
             return null;
         } else {
@@ -90,8 +91,7 @@
      */
     static /*package*/ Object getStaticValue(Class clazz,
                                              String fieldName,
-                                             Object instead)
-    {
+                                             Object instead) {
         Field staticField;
         try {
             staticField = clazz.getField(fieldName);
@@ -114,16 +114,16 @@
             args = ", " + args;
         }
         return member().getDeclaringClass().getName() + "."
-                + verb() + "(<receiver>" + args + ")";
+          + verb() + "(<receiver>" + args + ")";
     }
 
     /**
      *
      */
     protected Object innerExecute(Object self, Object[] args)
-    throws Exception {
+      throws Exception {
         Method meth = (Method)member();
-        Object[] newArgs = new Object[args.length +1];
+        Object[] newArgs = new Object[args.length + 1];
         newArgs[0] = self;
         System.arraycopy(args, 0, newArgs, 1, args.length);
         return meth.invoke(null, newArgs);
@@ -144,10 +144,11 @@
      */
     public Class[] parameterTypes() {
         Class[] types = ((Method)member()).getParameterTypes();
-        Class[] result = new Class[types.length -1];
+        Class[] result = new Class[types.length - 1];
         System.arraycopy(types, 1, result, 0, result.length);
         return result;
     }
+
     /**
      * If the printOkFlag is not set, then suppress printing of this
      * method node.



1.4       +1 -2      e/src/jsrc/org/erights/e/elib/prim/SynchQueue.java

Index: SynchQueue.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/prim/SynchQueue.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- SynchQueue.java	2001/09/06 09:55:48	1.3
+++ SynchQueue.java	2001/11/10 19:40:45	1.4
@@ -20,7 +20,6 @@
 */
 
 
-
 /**
  * A SynchQueue is a thread-safe Queue, providing its own lock, and a
  * blocking dequeue() operation. <p>
@@ -66,7 +65,7 @@
      */
     public Object dequeue() {
         synchronized (myQLock) {
-            while(true) {
+            while (true) {
                 Object result = optDequeue();
                 if (result != null) {
                     return result;



1.8       +3 -4      e/src/jsrc/org/erights/e/elib/prim/Thrower.java

Index: Thrower.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/prim/Thrower.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- Thrower.java	2001/10/01 08:31:05	1.7
+++ Thrower.java	2001/11/10 19:40:45	1.8
@@ -21,7 +21,6 @@
 Contributor(s): ______________________________________.
 */
 
-import org.erights.e.develop.exception.ExceptionMgr;
 import org.erights.e.develop.exception.ThrowableSugar;
 import org.erights.e.elib.eio.TextWriter;
 import org.erights.e.elib.util.OneArgFunc;
@@ -41,7 +40,8 @@
     /**
      *
      */
-    private Thrower() {}
+    private Thrower() {
+    }
 
     /**
      * Throws problem (coerced to a RuntimeException).
@@ -81,8 +81,7 @@
      * provide the Java compiler with better control flow information.
      */
     static public RuntimeException toEject(OneArgFunc optEjector,
-                                           Object prob)
-    {
+                                           Object prob) {
         RuntimeException problem = E.asRTE(prob);
         if (null == optEjector) {
             return problem;



1.34      +15 -16    e/src/jsrc/org/erights/e/elib/prim/VTable.java

Index: VTable.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/prim/VTable.java,v
retrieving revision 1.33
retrieving revision 1.34
diff -u -r1.33 -r1.34
--- VTable.java	2001/09/07 05:49:22	1.33
+++ VTable.java	2001/11/10 19:40:45	1.34
@@ -18,6 +18,7 @@
 
 Contributor(s): ______________________________________.
 */
+
 import org.erights.e.develop.exception.ExceptionMgr;
 import org.erights.e.elib.base.MethodNode;
 import org.erights.e.elib.base.Script;
@@ -104,13 +105,12 @@
      * @see #resolve
      */
     public void addMethod(String verb, MethodNode newMeth, ConstMap optSafeJ)
-    throws AlreadyDefinedException {
+      throws AlreadyDefinedException {
 
         String optTypedVerb = newMeth.optTypedVerb();
         if (null != optTypedVerb &&
-            null != optSafeJ &&
-            ! optSafeJ.maps(optTypedVerb))
-        {
+          null != optSafeJ &&
+          !optSafeJ.maps(optTypedVerb)) {
             optSafeJ = optSafeJ;
             return;
         }
@@ -142,7 +142,7 @@
             } else {
                 //different arities, need array
                 int maxArity = Math.max(oldArity, newArity);
-                MethodNode[] arityTable = new MethodNode[maxArity+1];
+                MethodNode[] arityTable = new MethodNode[maxArity + 1];
                 arityTable[oldArity] = oldMeth;
                 arityTable[newArity] = newMeth;
                 myMethods.put(verb, arityTable);
@@ -152,7 +152,7 @@
             MethodNode[] arityTable = (MethodNode[])m;
             if (arityTable.length <= newArity) {
                 //can't fit the new arity, so grow it
-                MethodNode[] newTable = new MethodNode[newArity +1];
+                MethodNode[] newTable = new MethodNode[newArity + 1];
                 System.arraycopy(arityTable, 0, newTable, 0,
                                  arityTable.length);
                 arityTable = newTable;
@@ -174,7 +174,7 @@
      * independent way.
      */
     public void addMethod(MethodNode newMeth, ConstMap optSafeJ)
-    throws AlreadyDefinedException {
+      throws AlreadyDefinedException {
         addMethod(newMeth.verb(), newMeth, optSafeJ);
         String optTypedVerb = newMeth.optTypedVerb();
         if (optTypedVerb != null) {
@@ -197,7 +197,7 @@
                     String typeName = self.getClass().getName();
                     int lastDot = typeName.lastIndexOf('.');
                     //don't need to check for -1
-                    typeName = typeName.substring(lastDot+1);
+                    typeName = typeName.substring(lastDot + 1);
                     selfStr = "<" + typeName + ":" + self + "> ";
                 }
                 String diagnostic = selfStr + verb + "/" + args.length;
@@ -224,8 +224,7 @@
      */
     public boolean matchBind(Object[] args,
                              Object specimen,
-                             FlexList bindings)
-    {
+                             FlexList bindings) {
         VTable other;
         try {
             other = (VTable)Ref.resolution(specimen);
@@ -242,7 +241,7 @@
         if (mineIsNull != otherIsNull) {
             return false;
         }
-        if (! mineIsNull) {
+        if (!mineIsNull) {
             boolean mineIsMatcher = myOptOtherwise instanceof MatchMaker;
             boolean otherIsMatcher
               = other.myOptOtherwise instanceof MatchMaker;
@@ -250,13 +249,13 @@
                 return false;
             }
             if (mineIsMatcher) {
-                if (! ((MatchMaker)myOptOtherwise).matchBind(args,
-                                                        other.myOptOtherwise,
-                                                        bindings)) {
+                if (!((MatchMaker)myOptOtherwise).matchBind(args,
+                                                            other.myOptOtherwise,
+                                                            bindings)) {
                     return false;
                 }
             } else {
-                if (! myOptOtherwise.equals(other.myOptOtherwise)) {
+                if (!myOptOtherwise.equals(other.myOptOtherwise)) {
                     return false;
                 }
             }
@@ -315,7 +314,7 @@
             throw new RuntimeException("missing slash");
         }
         String verb = mverb.substring(0, slash);
-        String arityStr = mverb.substring(slash+1);
+        String arityStr = mverb.substring(slash + 1);
         int arity = Integer.parseInt(arityStr);
         return optMethod(verb, arity);
     }



1.12      +4 -2      e/src/jsrc/org/erights/e/elib/prim/VarGetterNode.java

Index: VarGetterNode.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/prim/VarGetterNode.java,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- VarGetterNode.java	2001/09/06 09:55:48	1.11
+++ VarGetterNode.java	2001/11/10 19:40:45	1.12
@@ -18,6 +18,7 @@
 
 Contributor(s): ______________________________________.
 */
+
 import java.lang.reflect.Field;
 import java.lang.reflect.Modifier;
 
@@ -27,7 +28,8 @@
  *
  * @author <a href="mailto:markm@erights.org">Mark S. Miller</a>
  */
-/*package*/ class VarGetterNode extends JavaMemberNode {
+/*package*/
+class VarGetterNode extends JavaMemberNode {
 
     static private final Class[] NO_CLASSES = {};
 
@@ -49,7 +51,7 @@
      *
      */
     protected Object innerExecute(Object self, Object[] args)
-    throws Exception {
+      throws Exception {
 
         return ((Field)member()).get(self);
     }



1.11      +5 -3      e/src/jsrc/org/erights/e/elib/prim/VarSetterNode.java

Index: VarSetterNode.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/prim/VarSetterNode.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- VarSetterNode.java	2001/09/06 09:55:48	1.10
+++ VarSetterNode.java	2001/11/10 19:40:45	1.11
@@ -18,6 +18,7 @@
 
 Contributor(s): ______________________________________.
 */
+
 import java.lang.reflect.Field;
 import java.lang.reflect.Modifier;
 
@@ -27,7 +28,8 @@
  *
  * @author <a href="mailto:markm@erights.org">Mark S. Miller</a>
  */
-/*package*/ class VarSetterNode extends JavaMemberNode {
+/*package*/
+class VarSetterNode extends JavaMemberNode {
 
     /**
      *
@@ -44,14 +46,14 @@
      */
     protected String explain(String args) {
         return member().getDeclaringClass().getName() + "."
-                + verb() + " = " + args + ";";
+          + verb() + " = " + args + ";";
     }
 
     /**
      *
      */
     protected Object innerExecute(Object self, Object[] args)
-    throws Exception {
+      throws Exception {
 
         ((Field)member()).set(self, args[0]);
         return null;



1.10      +1 -2      e/src/jsrc/org/erights/e/elib/prim/WeakPtr.java

Index: WeakPtr.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/prim/WeakPtr.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- WeakPtr.java	2001/09/06 09:55:48	1.9
+++ WeakPtr.java	2001/11/10 19:40:45	1.10
@@ -75,8 +75,7 @@
     static public WeakPtr make(Object referent,
                                Object receiver,
                                String verb,
-                               Object[] args)
-    {
+                               Object[] args) {
         Resolver resolver = ResultResolver.make(Runner.currentRunner(), null);
         return new WeakPtr(referent,
                            new PendingEvent(receiver,



1.6       +5 -4      e/src/jsrc/org/erights/e/elib/prim/WeakPtrThread.java

Index: WeakPtrThread.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/prim/WeakPtrThread.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- WeakPtrThread.java	2001/09/06 09:55:48	1.5
+++ WeakPtrThread.java	2001/11/10 19:40:45	1.6
@@ -26,17 +26,18 @@
  *
  * @author <a href="mailto:markm@erights.org">Mark S. Miller</a>
  */
-/*package*/ class WeakPtrThread extends Thread {
+/*package*/
+class WeakPtrThread extends Thread {
 
     private final ReferenceQueue myWeakPtrQueue;
+
     private final Runner myRunner;
 
     static private final Object[] NO_ARGS = {};
 
     /*package*/ WeakPtrThread(ReferenceQueue weakPtrQueue,
                               Runner runner,
-                              String name)
-    {
+                              String name) {
         super(name);
         myWeakPtrQueue = weakPtrQueue;
         myRunner = runner;
@@ -46,7 +47,7 @@
      *
      */
     public void run() {
-        while (! myRunner.isShuttingDown()) {
+        while (!myRunner.isShuttingDown()) {
             WeakPtr weakPtr;
             try {
                 weakPtr = (WeakPtr)myWeakPtrQueue.remove();



1.2       +2 -0      e/src/jsrc/org/erights/e/elib/prim/tests/A.java

Index: A.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/prim/tests/A.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- A.java	2000/09/03 19:43:18	1.1
+++ A.java	2001/11/10 19:40:46	1.2
@@ -4,6 +4,8 @@
  *
  */
 public class A {
+
     static public class B {
+
     }
 }



1.27      +1 -0      e/src/jsrc/org/erights/e/elib/prim/tests/ERunDemo.java

Index: ERunDemo.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/prim/tests/ERunDemo.java,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -r1.26 -r1.27
--- ERunDemo.java	2001/10/02 23:38:32	1.26
+++ ERunDemo.java	2001/11/10 19:40:46	1.27
@@ -67,6 +67,7 @@
         Ref i = E.send(s, "indexOf(int)", new Character('o'));
 
         Ref.whenResolvedOnly(i, new OneArgFunc() {
+
             public Object run(Object resolution) {
                 PrintStreamWriter.out().println("near: " + resolution);
                 return null; //to keep the compiler happy



1.8       +2 -1      e/src/jsrc/org/erights/e/elib/quasi/Identifiers.java

Index: Identifiers.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/quasi/Identifiers.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- Identifiers.java	2001/09/06 09:55:49	1.7
+++ Identifiers.java	2001/11/10 19:40:46	1.8
@@ -18,6 +18,7 @@
 
 Contributor(s): ______________________________________.
 */
+
 import org.erights.e.elib.tables.AssocFunc;
 
 import java.io.File;
@@ -59,7 +60,7 @@
         while (ch != -1) {
             delim.setLength(0);
             ident.setLength(0);
-            while (ch != -1 && ! Character.isJavaIdentifierPart((char)ch)) {
+            while (ch != -1 && !Character.isJavaIdentifierPart((char)ch)) {
                 delim.append((char)ch);
                 ch = myReader.read();
             }



1.5       +7 -2      e/src/jsrc/org/erights/e/elib/quasi/IncompleteQuasiException.java

Index: IncompleteQuasiException.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/quasi/IncompleteQuasiException.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- IncompleteQuasiException.java	2001/09/06 09:55:49	1.4
+++ IncompleteQuasiException.java	2001/11/10 19:40:46	1.5
@@ -29,6 +29,11 @@
  * @author <a href="mailto:markm@erights.org">Mark S. Miller</a>
  */
 public class IncompleteQuasiException extends RuntimeException {
-    public IncompleteQuasiException() {}
-    public IncompleteQuasiException(String msg) { super(msg); }
+
+    public IncompleteQuasiException() {
+    }
+
+    public IncompleteQuasiException(String msg) {
+        super(msg);
+    }
 }



1.11      +1 -0      e/src/jsrc/org/erights/e/elib/quasi/MatchMaker.java

Index: MatchMaker.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/quasi/MatchMaker.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- MatchMaker.java	2001/09/06 09:55:49	1.10
+++ MatchMaker.java	2001/11/10 19:40:46	1.11
@@ -18,6 +18,7 @@
 
 Contributor(s): ______________________________________.
 */
+
 import org.erights.e.elib.tables.ConstList;
 import org.erights.e.elib.tables.FlexList;
 



1.7       +4 -5      e/src/jsrc/org/erights/e/elib/quasi/SimpleQuasiParser.java

Index: SimpleQuasiParser.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/quasi/SimpleQuasiParser.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- SimpleQuasiParser.java	2001/09/06 09:55:49	1.6
+++ SimpleQuasiParser.java	2001/11/10 19:40:46	1.7
@@ -28,7 +28,7 @@
  * @author <a href="mailto:markm@erights.org">Mark S. Miller</a>
  */
 public class SimpleQuasiParser
-implements QuasiExprParser, QuasiPatternParser {
+  implements QuasiExprParser, QuasiPatternParser {
 
     static public final SimpleQuasiParser THE_ONE = new SimpleQuasiParser();
 
@@ -58,7 +58,7 @@
      */
     public ValueMaker valueMaker(Twine template, int[] dlrHoles) {
         throw new RuntimeException
-            ("XXX new quasi valueMaker API not yet implemented");
+          ("XXX new quasi valueMaker API not yet implemented");
     }
 
     /**
@@ -73,10 +73,9 @@
      */
     public MatchMaker matchMaker(Twine template,
                                  int[] dlrHoles,
-                                 int[] atHoles)
-    {
+                                 int[] atHoles) {
         throw new RuntimeException
-            ("XXX new quasi matchMaker API not yet implemented");
+          ("XXX new quasi matchMaker API not yet implemented");
     }
 
     /**



1.26      +5 -5      e/src/jsrc/org/erights/e/elib/quasi/Substituter.java

Index: Substituter.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/quasi/Substituter.java,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -r1.25 -r1.26
--- Substituter.java	2001/09/07 05:49:23	1.25
+++ Substituter.java	2001/11/10 19:40:46	1.26
@@ -47,6 +47,7 @@
      * XXX this representation is a kludge
      */
     private Object[] myTemplate;
+
     private int myMatchSize;
 
     //XXX find a way to break this up cleanly
@@ -60,7 +61,7 @@
             if (c1 != '$' && c1 != '@') {
                 //not a marker
                 buffer.append(c1);
-            } else if (i >= len -1) {
+            } else if (i >= len - 1) {
                 //terminal marker
                 buffer.append(c1);
             } else {
@@ -177,8 +178,7 @@
      */
     public boolean matchBind(Object[] args,
                              Object specimen,
-                             FlexList bindings)
-    {
+                             FlexList bindings) {
         ConstList binds = matchBind(args, specimen);
         if (binds == null) {
             return false;
@@ -268,7 +268,7 @@
         int result = 0;
         for (int i = 0; i < myTemplate.length; i++) {
             if (myTemplate[i] instanceof Integer
-                && ((Integer)myTemplate[i]).intValue() >= 0) {
+              && ((Integer)myTemplate[i]).intValue() >= 0) {
 
                 result++;
             }
@@ -283,7 +283,7 @@
         int result = 0;
         for (int i = 0; i < myTemplate.length; i++) {
             if (myTemplate[i] instanceof Integer
-                && ((Integer)myTemplate[i]).intValue() < 0) {
+              && ((Integer)myTemplate[i]).intValue() < 0) {
 
                 result++;
             }



1.5       +2 -1      e/src/jsrc/org/erights/e/elib/ref/BufferingRef.java

Index: BufferingRef.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/ref/BufferingRef.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- BufferingRef.java	2001/09/06 09:55:50	1.4
+++ BufferingRef.java	2001/11/10 19:40:46	1.5
@@ -43,7 +43,8 @@
  *
  * @author <a href="mailto:markm@erights.org">Mark S. Miller</a>
  */
-/*package*/ class BufferingRef extends Ref {
+/*package*/
+class BufferingRef extends Ref {
 
     private final WeakReference myBuf;
 



1.7       +5 -4      e/src/jsrc/org/erights/e/elib/ref/DisconnectedRef.java

Index: DisconnectedRef.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/ref/DisconnectedRef.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- DisconnectedRef.java	2001/10/01 08:31:05	1.6
+++ DisconnectedRef.java	2001/11/10 19:40:46	1.7
@@ -18,6 +18,7 @@
 
 Contributor(s): ______________________________________.
 */
+
 import org.erights.e.develop.exception.ExceptionMgr;
 import org.erights.e.elib.prim.E;
 import org.erights.e.elib.prim.Message;
@@ -39,8 +40,9 @@
  *
  * @author <a href="mailto:markm@erights.org">Mark S. Miller</a>
  */
-/*package*/ class DisconnectedRef
-extends Ref implements PassByConstruction, Persistent {
+/*package*/
+class DisconnectedRef
+  extends Ref implements PassByConstruction, Persistent {
 
     static private final long serialVersionUID = 1307531130876647340L;
 
@@ -121,8 +123,7 @@
      */
     private void doBreakage(String verb, Object[] args) {
         if (args.length == 1
-            && (verb.equals("whenMoreResolved") || verb.equals("whenBroken")))
-        {
+          && (verb.equals("whenMoreResolved") || verb.equals("whenBroken"))) {
             E.sendOnly(args[0], "run", this);
         }
     }



1.3       +2 -2      e/src/jsrc/org/erights/e/elib/ref/ExternalRef.java

Index: ExternalRef.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/ref/ExternalRef.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- ExternalRef.java	2001/10/03 18:05:28	1.2
+++ ExternalRef.java	2001/11/10 19:40:46	1.3
@@ -21,7 +21,6 @@
 
 import org.erights.e.elib.prim.E;
 import org.erights.e.elib.prim.Runner;
-import org.erights.e.elib.prim.StaticMaker;
 import org.erights.e.elib.util.OneArgFunc;
 
 /**
@@ -90,7 +89,7 @@
          */
         private void waitFor() {
             synchronized (myLock) {
-                while (! myIsDone) {
+                while (!myIsDone) {
                     try {
                         myLock.wait();
                     } catch (InterruptedException ie) {
@@ -103,6 +102,7 @@
 
 
     private final Runner myTargetsRunner;
+
     private final Object myTarget;
 
     /**



1.15      +2 -1      e/src/jsrc/org/erights/e/elib/ref/FarRef.java

Index: FarRef.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/ref/FarRef.java,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- FarRef.java	2001/09/06 09:55:50	1.14
+++ FarRef.java	2001/11/10 19:40:46	1.15
@@ -33,7 +33,8 @@
  *
  * @author <a href="mailto:markm@erights.org">Mark S. Miller</a>
  */
-/*package*/ class FarRef extends Proxy {
+/*package*/
+class FarRef extends Proxy {
 
     /**
      * My settled identity is according to .equals() on this settled object.



1.9       +2 -1      e/src/jsrc/org/erights/e/elib/ref/LocalResolver.java

Index: LocalResolver.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/ref/LocalResolver.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- LocalResolver.java	2001/10/01 08:31:05	1.8
+++ LocalResolver.java	2001/11/10 19:40:46	1.9
@@ -31,7 +31,8 @@
  *
  * @author <a href="mailto:markm@erights.org">Mark S. Miller</a>
  */
-/*package*/ class LocalResolver implements Resolver, EPrintable {
+/*package*/
+class LocalResolver implements Resolver, EPrintable {
 
     /**
      * Once it's done, it stops pointing at the Ref.



1.5       +3 -1      e/src/jsrc/org/erights/e/elib/ref/NearRef.java

Index: NearRef.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/ref/NearRef.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- NearRef.java	2001/09/06 09:55:50	1.4
+++ NearRef.java	2001/11/10 19:40:46	1.5
@@ -18,6 +18,7 @@
 
 Contributor(s): ______________________________________.
 */
+
 import org.erights.e.elib.prim.E;
 
 /**
@@ -32,7 +33,8 @@
  *
  * @author <a href="mailto:markm@erights.org">Mark S. Miller</a>
  */
-/*package*/ class NearRef extends Ref {
+/*package*/
+class NearRef extends Ref {
 
     private final Object myTarget;
 



1.6       +2 -2      e/src/jsrc/org/erights/e/elib/ref/OneArgFuncAdapter.java

Index: OneArgFuncAdapter.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/ref/OneArgFuncAdapter.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- OneArgFuncAdapter.java	2001/09/07 05:49:23	1.5
+++ OneArgFuncAdapter.java	2001/11/10 19:40:46	1.6
@@ -46,6 +46,7 @@
 public class OneArgFuncAdapter implements OneArgFunc {
 
     private Object myReactor;
+
     private String myOnVerb;
 
     /**
@@ -60,8 +61,7 @@
      *
      */
     static public void adapt(Object target, String whenVerb,
-                             Object reactor, String onVerb)
-    {
+                             Object reactor, String onVerb) {
         E.sendOnly(target, whenVerb, new OneArgFuncAdapter(reactor, onVerb));
     }
 



1.6       +2 -1      e/src/jsrc/org/erights/e/elib/ref/Proxy.java

Index: Proxy.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/ref/Proxy.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- Proxy.java	2001/09/06 09:55:50	1.5
+++ Proxy.java	2001/11/10 19:40:46	1.6
@@ -44,7 +44,8 @@
  *
  * @author <a href="mailto:markm@erights.org">Mark S. Miller</a>
  */
-/*package*/ abstract class Proxy extends Ref {
+/*package*/
+abstract class Proxy extends Ref {
 
     /**
      * While I'm handled, I delegate many of my decisions to my handler.



1.10      +5 -4      e/src/jsrc/org/erights/e/elib/ref/ProxyResolver.java

Index: ProxyResolver.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/ref/ProxyResolver.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- ProxyResolver.java	2001/10/01 08:31:05	1.9
+++ ProxyResolver.java	2001/11/10 19:40:46	1.10
@@ -78,10 +78,9 @@
     public ProxyResolver(ProxyHandler handler, Object optIdentity) {
         optIdentity = Ref.resolution(optIdentity);
         if (null != optIdentity &&
-            ! Selfless.HONORARY.has(optIdentity.getClass()))
-        {
+          !Selfless.HONORARY.has(optIdentity.getClass())) {
             throw new RuntimeException
-                ("" + optIdentity + " must be an honorary Selfless object");
+              ("" + optIdentity + " must be an honorary Selfless object");
         }
         myOptHandler = handler;
         myOptIdentity = optIdentity;
@@ -134,7 +133,9 @@
     /**
      *
      */
-    public ProxyHandler optHandler() { return myOptHandler; }
+    public ProxyHandler optHandler() {
+        return myOptHandler;
+    }
 
     /**
      * Automatically eventually invoked when one of my Refs have gone away.



1.31      +15 -16    e/src/jsrc/org/erights/e/elib/ref/Ref.java

Index: Ref.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/ref/Ref.java,v
retrieving revision 1.30
retrieving revision 1.31
diff -u -r1.30 -r1.31
--- Ref.java	2001/10/02 23:38:32	1.30
+++ Ref.java	2001/11/10 19:40:46	1.31
@@ -64,7 +64,9 @@
       = StaticMaker.make(Ref.class);
 
     static public final String NEAR = "NEAR";
+
     static public final String EVENTUAL = "EVENTUAL";
+
     static public final String BROKEN = "BROKEN";
 
     /**
@@ -390,7 +392,7 @@
      */
     static public boolean isSelfless(Object ref) {
         ref = resolution(ref);
-        if (! isNear(ref)) {
+        if (!isNear(ref)) {
             return false;
         }
         if (null == ref) {
@@ -401,13 +403,11 @@
             return true;
         }
         if (Selfless.class.isAssignableFrom(clazz) ||
-            Selfless.HONORARY.has(clazz))
-        {
+          Selfless.HONORARY.has(clazz)) {
             if (PassByProxy.class.isAssignableFrom(clazz) ||
-                PassByProxy.HONORARY.has(clazz))
-            {
+              PassByProxy.HONORARY.has(clazz)) {
                 throw new RuntimeException
-                    ("Can't be Selfless & PassByProxy: " + clazz);
+                  ("Can't be Selfless & PassByProxy: " + clazz);
             }
             return true;
         }
@@ -428,7 +428,7 @@
      * "x==y" does not agree with Java's "x==y".
      */
     static public boolean isSelfish(Object ref) {
-        return isNear(ref) && ! isSelfless(ref);
+        return isNear(ref) && !isSelfless(ref);
     }
 
     /**
@@ -445,7 +445,7 @@
      */
     static public boolean isPassByProxy(Object ref) {
         ref = resolution(ref);
-        if (! isNear(ref)) {
+        if (!isNear(ref)) {
             return false;
         }
         if (null == ref) {
@@ -453,13 +453,11 @@
         }
         Class clazz = ref.getClass();
         if (PassByProxy.class.isAssignableFrom(clazz) ||
-            PassByProxy.HONORARY.has(clazz))
-        {
+          PassByProxy.HONORARY.has(clazz)) {
             if (Selfless.class.isAssignableFrom(clazz) ||
-                Selfless.HONORARY.has(clazz))
-            {
+              Selfless.HONORARY.has(clazz)) {
                 throw new RuntimeException
-                    ("Can't be PassByProxy & Selfless: " + clazz);
+                  ("Can't be PassByProxy & Selfless: " + clazz);
             }
             return true;
         }
@@ -488,7 +486,7 @@
      */
     static public boolean isPBC(Object ref) {
         ref = resolution(ref);
-        if (! isNear(ref)) {
+        if (!isNear(ref)) {
             return false;
         }
         if (null == ref) {
@@ -572,7 +570,7 @@
      * identity.
      */
     static public boolean same(Object left, Object right)
-    throws NotSettledException {
+      throws NotSettledException {
         return Equalizer.same(resolution(left), resolution(right));
     }
 
@@ -790,7 +788,8 @@
     /**
      * This default implemetation currently does nothing
      */
-    public void ignore() {}
+    public void ignore() {
+    }
 
     /**
      * Used by a resolvers to change the target.  If newTarget is equivalent



1.3       +3 -2      e/src/jsrc/org/erights/e/elib/ref/RemotePromise.java

Index: RemotePromise.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/ref/RemotePromise.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- RemotePromise.java	2001/09/06 09:55:50	1.2
+++ RemotePromise.java	2001/11/10 19:40:46	1.3
@@ -31,7 +31,8 @@
  *
  * @author <a href="mailto:markm@erights.org">Mark S. Miller</a>
  */
-/*package*/ class RemotePromise extends Proxy {
+/*package*/
+class RemotePromise extends Proxy {
 
     /**
      *
@@ -65,7 +66,7 @@
         newTarget = newTarget.resolutionRef();
         if (newTarget == TheViciousRef) {
             myOptTarget =
-                new UnconnectedRef(new ViciousCycleException("Ref loop"));
+              new UnconnectedRef(new ViciousCycleException("Ref loop"));
         } else {
             myOptTarget = newTarget;
         }



1.9       +4 -1      e/src/jsrc/org/erights/e/elib/ref/ResultResolver.java

Index: ResultResolver.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/ref/ResultResolver.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- ResultResolver.java	2001/10/01 08:31:05	1.8
+++ ResultResolver.java	2001/11/10 19:40:46	1.9
@@ -36,8 +36,11 @@
 public class ResultResolver implements Resolver {
 
     private final Runner myRunner;
+
     private final Resolver myOptWrapped;
+
     private final Throwable myMakersStack;
+
     private final long mySendingTicket;
 
     /**
@@ -65,7 +68,7 @@
      *
      */
     public void resolve(Object target) {
-        if (null !=  myOptWrapped) {
+        if (null != myOptWrapped) {
             myOptWrapped.resolve(target);
         }
     }



1.6       +3 -1      e/src/jsrc/org/erights/e/elib/ref/SlotRef.java

Index: SlotRef.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/ref/SlotRef.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- SlotRef.java	2001/09/06 09:55:50	1.5
+++ SlotRef.java	2001/11/10 19:40:46	1.6
@@ -32,11 +32,13 @@
  *
  * @author <a href="mailto:markm@erights.org">Mark S. Miller</a>
  */
-/*package*/ class SlotRef extends SwitchableRef implements Slot {
+/*package*/
+class SlotRef extends SwitchableRef implements Slot {
 
     static private final Object[] NO_ARGS = {};
 
     private Ref myValueRef;
+
     private Resolver myValueResolver;
 
     /*package*/ SlotRef(Ref target) {



1.6       +2 -2      e/src/jsrc/org/erights/e/elib/ref/StemCell.java

Index: StemCell.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/ref/StemCell.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- StemCell.java	2001/10/02 23:38:32	1.5
+++ StemCell.java	2001/11/10 19:40:46	1.6
@@ -56,7 +56,7 @@
  * @author <a href="mailto:markm@erights.org">Mark S. Miller</a>
  */
 public abstract class StemCell extends Ref
-implements PassByConstruction, Persistent {
+  implements PassByConstruction, Persistent {
 
     static private final long serialVersionUID = 3574625250011981396L;
 
@@ -87,7 +87,7 @@
      * the result of readResolveStem(), to be provided by a subclass.
      */
     private void readObject(ObjectInputStream ois)
-    throws ClassNotFoundException, IOException {
+      throws ClassNotFoundException, IOException {
         Object[] pair = Ref.promise();
         myOptPromise = (Ref)pair[0];
         myOptResolver = (Resolver)pair[1];



1.6       +4 -3      e/src/jsrc/org/erights/e/elib/ref/SwitchableRef.java

Index: SwitchableRef.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/ref/SwitchableRef.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- SwitchableRef.java	2001/09/06 09:55:50	1.5
+++ SwitchableRef.java	2001/11/10 19:40:46	1.6
@@ -31,7 +31,8 @@
  *
  * @author <a href="mailto:markm@erights.org">Mark S. Miller</a>
  */
-/*package*/ class SwitchableRef extends Ref {
+/*package*/
+class SwitchableRef extends Ref {
 
     /**
      * The current destination for all messages.
@@ -159,7 +160,7 @@
      *
      */
     /*package*/ void commit() {
-        if (! myIsSwitchable) {
+        if (!myIsSwitchable) {
             return;
         }
         Ref newTarget = myTarget.resolutionRef();
@@ -168,7 +169,7 @@
         newTarget = newTarget.resolutionRef();
         if (newTarget == TheViciousRef) {
             myTarget =
-                new UnconnectedRef(new ViciousCycleException("Ref loop"));
+              new UnconnectedRef(new ViciousCycleException("Ref loop"));
         } else {
             myTarget = newTarget;
         }



1.5       +5 -4      e/src/jsrc/org/erights/e/elib/ref/UnconnectedRef.java

Index: UnconnectedRef.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/ref/UnconnectedRef.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- UnconnectedRef.java	2001/10/01 08:31:05	1.4
+++ UnconnectedRef.java	2001/11/10 19:40:46	1.5
@@ -18,6 +18,7 @@
 
 Contributor(s): ______________________________________.
 */
+
 import org.erights.e.develop.exception.ExceptionMgr;
 import org.erights.e.elib.prim.E;
 import org.erights.e.elib.prim.Message;
@@ -42,8 +43,9 @@
  *
  * @author <a href="mailto:markm@erights.org">Mark S. Miller</a>
  */
-/*package*/ class UnconnectedRef
-extends Ref implements PassByConstruction, Persistent {
+/*package*/
+class UnconnectedRef
+  extends Ref implements PassByConstruction, Persistent {
 
     static private final long serialVersionUID = -2749826475753817626L;
 
@@ -87,8 +89,7 @@
      */
     private void doBreakage(String verb, Object[] args) {
         if (args.length == 1
-            && (verb.equals("whenMoreResolved") || verb.equals("whenBroken")))
-        {
+          && (verb.equals("whenMoreResolved") || verb.equals("whenBroken"))) {
             E.sendOnly(args[0], "run", this);
         }
     }



1.3       +8 -3      e/src/jsrc/org/erights/e/elib/ref/ViciousCycleException.java

Index: ViciousCycleException.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/ref/ViciousCycleException.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- ViciousCycleException.java	2001/09/06 09:55:50	1.2
+++ ViciousCycleException.java	2001/11/10 19:40:46	1.3
@@ -24,12 +24,17 @@
  * requests would have resulted in a forwarding loop.
  */
 public class ViciousCycleException extends RuntimeException {
+
     /**
      * The ViciousCycleException.  Used to detect vicious forwarding cycles.
      */
     static public /*XXX should be package*/ final ViciousCycleException TheViciousMarker
-        = new ViciousCycleException("Caught in a forwarding loop");
+      = new ViciousCycleException("Caught in a forwarding loop");
+
+    public ViciousCycleException() {
+    }
 
-    public ViciousCycleException() {}
-    public ViciousCycleException(String m) { super(m); }
+    public ViciousCycleException(String m) {
+        super(m);
+    }
 }



1.6       +6 -4      e/src/jsrc/org/erights/e/elib/ref/WhenBrokenReactor.java

Index: WhenBrokenReactor.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/ref/WhenBrokenReactor.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- WhenBrokenReactor.java	2001/10/02 23:38:32	1.5
+++ WhenBrokenReactor.java	2001/11/10 19:40:46	1.6
@@ -45,11 +45,14 @@
  * @author <a href="mailto:markm@erights.org">Mark S. Miller</a>
  * @author <a href="mailto:tstanley@cocoon.com">Terry Stanley</a>
  */
-/*package*/ class WhenBrokenReactor
-implements DeadManSwitch, OneArgFunc, PassByProxy, Persistent {
+/*package*/
+class WhenBrokenReactor
+  implements DeadManSwitch, OneArgFunc, PassByProxy, Persistent {
 
     private OneArgFunc myOptWrapped;
+
     private Object myRef;
+
     private Resolver myOptResolver;
 
     /**
@@ -61,8 +64,7 @@
      */
     public WhenBrokenReactor(OneArgFunc wrapped,
                              Object ref,
-                             Resolver optResolver)
-    {
+                             Resolver optResolver) {
         myOptWrapped = wrapped;
         myRef = ref;
         myOptResolver = optResolver;



1.12      +6 -4      e/src/jsrc/org/erights/e/elib/ref/WhenResolvedReactor.java

Index: WhenResolvedReactor.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/ref/WhenResolvedReactor.java,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- WhenResolvedReactor.java	2001/10/02 23:38:32	1.11
+++ WhenResolvedReactor.java	2001/11/10 19:40:46	1.12
@@ -51,11 +51,14 @@
  * @author <a href="mailto:markm@erights.org">Mark S. Miller</a>
  * @author <a href="mailto:tstanley@cocoon.com">Terry Stanley</a>
  */
-/*package*/ class WhenResolvedReactor
-implements DeadManSwitch, OneArgFunc, PassByProxy, Persistent {
+/*package*/
+class WhenResolvedReactor
+  implements DeadManSwitch, OneArgFunc, PassByProxy, Persistent {
 
     private OneArgFunc myOptWrapped;
+
     private Object myRef;
+
     private Resolver myOptResolver;
 
     /**
@@ -67,8 +70,7 @@
      */
     /*package*/ WhenResolvedReactor(OneArgFunc wrapped,
                                     Object ref,
-                                    Resolver optResolver)
-    {
+                                    Resolver optResolver) {
         myOptWrapped = wrapped;
         myRef = ref;
         myOptResolver = optResolver;



1.11      +1 -1      e/src/jsrc/org/erights/e/elib/sealing/Unsealer.java

Index: Unsealer.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/sealing/Unsealer.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- Unsealer.java	2001/09/07 05:49:23	1.10
+++ Unsealer.java	2001/11/10 19:40:47	1.11
@@ -55,7 +55,7 @@
             return box.myContents;
         } else {
             throw new UnsealingException
-                ("" + this + " can't unseal " + box);
+              ("" + this + " can't unseal " + box);
         }
     }
 



1.5       +7 -2      e/src/jsrc/org/erights/e/elib/sealing/UnsealingException.java

Index: UnsealingException.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/sealing/UnsealingException.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- UnsealingException.java	2001/09/06 09:55:50	1.4
+++ UnsealingException.java	2001/11/10 19:40:47	1.5
@@ -25,6 +25,11 @@
  * @author <a href="mailto:markm@erights.org">Mark S. Miller</a>
  */
 public class UnsealingException extends Exception {
-    public UnsealingException() {}
-    public UnsealingException(String s) { super(s); }
+
+    public UnsealingException() {
+    }
+
+    public UnsealingException(String s) {
+        super(s);
+    }
 }



1.14      +2 -2      e/src/jsrc/org/erights/e/elib/serial/PassByConstruction.java

Index: PassByConstruction.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/serial/PassByConstruction.java,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- PassByConstruction.java	2001/10/02 23:38:32	1.13
+++ PassByConstruction.java	2001/11/10 19:40:47	1.14
@@ -59,7 +59,7 @@
         "java.lang.Throwable",
 
         //since JDK1.4.  See
-    //https://bugs.sieve.net/bugs/?func=detailbug&bug_id=125434&group_id=16380
+        //https://bugs.sieve.net/bugs/?func=detailbug&bug_id=125434&group_id=16380
         "java.lang.StackTraceElement"
     };
 
@@ -68,5 +68,5 @@
      * and all their subclasses.
      */
     static public final ConstSubclassSet HONORARY
-        = ConstSubclassSet.make(HONORED_NAMES);
+      = ConstSubclassSet.make(HONORED_NAMES);
 }



1.11      +12 -7     e/src/jsrc/org/erights/e/elib/serial/PassByConstructionGuard.java

Index: PassByConstructionGuard.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/serial/PassByConstructionGuard.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- PassByConstructionGuard.java	2001/09/06 09:55:51	1.10
+++ PassByConstructionGuard.java	2001/11/10 19:40:47	1.11
@@ -38,22 +38,27 @@
 public class PassByConstructionGuard implements ValueGuard, SlotGuard {
 
     static public final PassByConstructionGuard THE_ONE =
-        new PassByConstructionGuard();
+      new PassByConstructionGuard();
 
     /**
      *
      */
-    private PassByConstructionGuard() {}
+    private PassByConstructionGuard() {
+    }
 
     /**
      *
      */
-    public String getName() { return "pbc"; }
+    public String getName() {
+        return "pbc";
+    }
 
     /**
      * Same as getName()
      */
-    public String toString() { return getName(); }
+    public String toString() {
+        return getName();
+    }
 
     /**
      * Coerces specimen to be pass-by-construction, which includes types that
@@ -71,9 +76,9 @@
             }
         } else {
             throw Thrower.toEject(
-                optEjector,
-                new ClassCastException(specimen.getClass().getName() +
-                                       " isn't PassByConstruction"));
+              optEjector,
+              new ClassCastException(specimen.getClass().getName() +
+                                     " isn't PassByConstruction"));
         }
     }
 



1.7       +1 -1      e/src/jsrc/org/erights/e/elib/serial/PassByProxy.java

Index: PassByProxy.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/serial/PassByProxy.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- PassByProxy.java	2001/10/02 23:38:32	1.6
+++ PassByProxy.java	2001/11/10 19:40:47	1.7
@@ -51,5 +51,5 @@
      * and all their subclasses.
      */
     static public final ConstSubclassSet HONORARY
-        = ConstSubclassSet.make(HONORED_NAMES);
+      = ConstSubclassSet.make(HONORED_NAMES);
 }



1.7       +12 -7     e/src/jsrc/org/erights/e/elib/serial/PassByProxyGuard.java

Index: PassByProxyGuard.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/serial/PassByProxyGuard.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- PassByProxyGuard.java	2001/09/06 09:55:51	1.6
+++ PassByProxyGuard.java	2001/11/10 19:40:47	1.7
@@ -37,22 +37,27 @@
 public class PassByProxyGuard implements ValueGuard, SlotGuard {
 
     static public final PassByProxyGuard THE_ONE =
-        new PassByProxyGuard();
+      new PassByProxyGuard();
 
     /**
      *
      */
-    private PassByProxyGuard() {}
+    private PassByProxyGuard() {
+    }
 
     /**
      *
      */
-    public String getName() { return "PassByProxy"; }
+    public String getName() {
+        return "PassByProxy";
+    }
 
     /**
      * Same as getName()
      */
-    public String toString() { return getName(); }
+    public String toString() {
+        return getName();
+    }
 
     /**
      * Coerces specimen to be
@@ -65,9 +70,9 @@
             return specimen;
         } else {
             throw Thrower.toEject(
-                optEjector,
-                new ClassCastException(specimen.getClass().getName() +
-                                       " isn't PassByProxy"));
+              optEjector,
+              new ClassCastException(specimen.getClass().getName() +
+                                     " isn't PassByProxy"));
         }
     }
 



1.7       +2 -1      e/src/jsrc/org/erights/e/elib/serial/PersistenceReplacer.java

Index: PersistenceReplacer.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/serial/PersistenceReplacer.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- PersistenceReplacer.java	2001/10/01 08:31:05	1.6
+++ PersistenceReplacer.java	2001/11/10 19:40:47	1.7
@@ -43,7 +43,8 @@
     /**
      *
      */
-    private PersistenceReplacer() {}
+    private PersistenceReplacer() {
+    }
 
     /**
      * If ref {@link Ref#isPersistent(Object)}, then this currently just



1.6       +2 -1      e/src/jsrc/org/erights/e/elib/serial/PersistenceResolver.java

Index: PersistenceResolver.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/serial/PersistenceResolver.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- PersistenceResolver.java	2001/09/06 09:55:51	1.5
+++ PersistenceResolver.java	2001/11/10 19:40:47	1.6
@@ -36,7 +36,8 @@
     /**
      *
      */
-    private PersistenceResolver() {}
+    private PersistenceResolver() {
+    }
 
     /**
      * Currently, just returns ref.



1.7       +1 -1      e/src/jsrc/org/erights/e/elib/serial/Persistent.java

Index: Persistent.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/serial/Persistent.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- Persistent.java	2001/10/02 23:38:32	1.6
+++ Persistent.java	2001/11/10 19:40:47	1.7
@@ -75,5 +75,5 @@
      * and all their subclasses.
      */
     static public final ConstSubclassSet HONORARY
-        = ConstSubclassSet.make(HONORED_NAMES);
+      = ConstSubclassSet.make(HONORED_NAMES);
 }



1.6       +1 -2      e/src/jsrc/org/erights/e/elib/serial/RemoteCall.java

Index: RemoteCall.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/serial/RemoteCall.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- RemoteCall.java	2001/10/02 23:38:32	1.5
+++ RemoteCall.java	2001/11/10 19:40:47	1.6
@@ -69,8 +69,7 @@
      */
     public RemoteCall(Object recipient,
                       String verb,
-                      Object[] args)
-    {
+                      Object[] args) {
         myRecipient = recipient;
         myVerb = verb;
         myArgs = args;



1.9       +1 -2      e/src/jsrc/org/erights/e/elib/serial/RemoteDelivery.java

Index: RemoteDelivery.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/serial/RemoteDelivery.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- RemoteDelivery.java	2001/10/02 23:38:32	1.8
+++ RemoteDelivery.java	2001/11/10 19:40:47	1.9
@@ -62,8 +62,7 @@
      */
     public RemoteDelivery(Object recipient,
                           String verb,
-                          Object[] args)
-    {
+                          Object[] args) {
         myRecipient = recipient;
         myVerb = verb;
         myArgs = args;



1.11      +5 -5      e/src/jsrc/org/erights/e/elib/serial/Serializer.java

Index: Serializer.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/serial/Serializer.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- Serializer.java	2001/09/06 09:55:51	1.10
+++ Serializer.java	2001/11/10 19:40:47	1.11
@@ -66,7 +66,7 @@
      * Java Serialization spec for the detailed implications of this.
      */
     public Serializer(OutputStream out, OneArgFunc replacer)
-    throws IOException {
+      throws IOException {
         super(out);
         enableReplaceObject(true);
         myReplacer = replacer;
@@ -86,7 +86,7 @@
      * Such recordings can be play()ed by Unserializer.
      */
     static public byte[] record(Object specimen, OneArgFunc replacer)
-    throws IOException {
+      throws IOException {
         ByteArrayOutputStream out = new ByteArrayOutputStream();
         Serializer ser = new Serializer(out, replacer);
         ser.writeObject(specimen);
@@ -98,7 +98,7 @@
      * replacer(..) defaults to {@link PersistenceReplacer}.
      */
     static public byte[] record(Object specimen)
-    throws IOException {
+      throws IOException {
         return record(specimen, PersistenceReplacer.TheOne);
     }
 
@@ -108,7 +108,7 @@
     static public void recordFile(File file,
                                   Object specimen,
                                   OneArgFunc replacer)
-    throws IOException {
+      throws IOException {
         byte[] recording = record(specimen, replacer);
         FileSugar.setBytes(file, recording);
     }
@@ -117,7 +117,7 @@
      * replacer(..) defaults to {@link PersistenceReplacer}.
      */
     static public void recordFile(File file, Object specimen)
-    throws IOException {
+      throws IOException {
         recordFile(file, specimen, PersistenceReplacer.TheOne);
     }
 



1.10      +5 -5      e/src/jsrc/org/erights/e/elib/serial/Unserializer.java

Index: Unserializer.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/serial/Unserializer.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- Unserializer.java	2001/09/06 09:55:51	1.9
+++ Unserializer.java	2001/11/10 19:40:47	1.10
@@ -64,7 +64,7 @@
      * Java Serialization spec for the detailed implications of this.
      */
     public Unserializer(InputStream inp, OneArgFunc resolver)
-    throws IOException {
+      throws IOException {
         super(inp);
         enableResolveObject(true);
         myResolver = resolver;
@@ -81,7 +81,7 @@
      *
      */
     static public Object play(byte[] recording, OneArgFunc resolver)
-    throws IOException, ClassNotFoundException {
+      throws IOException, ClassNotFoundException {
         ByteArrayInputStream inp = new ByteArrayInputStream(recording);
         Unserializer uns = new Unserializer(inp, resolver);
         Object result = uns.readObject();
@@ -93,7 +93,7 @@
      * resolver(..) defaults to {@link PersistenceResolver#TheOne}
      */
     static public Object play(byte[] recording)
-    throws IOException, ClassNotFoundException {
+      throws IOException, ClassNotFoundException {
         return play(recording, PersistenceResolver.TheOne);
     }
 
@@ -101,7 +101,7 @@
      *
      */
     static public Object playFile(File file, OneArgFunc resolver)
-    throws IOException, ClassNotFoundException {
+      throws IOException, ClassNotFoundException {
         byte[] recording = FileSugar.getBytes(file);
         return play(recording, resolver);
     }
@@ -110,7 +110,7 @@
      * resolver(..) defaults to {@link PersistenceResolver#TheOne}
      */
     static public Object playFile(File file)
-    throws IOException, ClassNotFoundException {
+      throws IOException, ClassNotFoundException {
         return playFile(file, PersistenceResolver.TheOne);
     }
 



1.8       +7 -3      e/src/jsrc/org/erights/e/elib/slot/FinalSlotMaker.java

Index: FinalSlotMaker.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/slot/FinalSlotMaker.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- FinalSlotMaker.java	2001/09/07 05:49:23	1.7
+++ FinalSlotMaker.java	2001/11/10 19:40:48	1.8
@@ -74,7 +74,7 @@
             return new FinalSlotMaker(valueGuard);
         } else {
             throw new RuntimeException(
-                "can only combine with one ValueGuard");
+              "can only combine with one ValueGuard");
         }
     }
 
@@ -88,10 +88,14 @@
     /**
      * "final"
      */
-    public String getName() { return "final"; }
+    public String getName() {
+        return "final";
+    }
 
     /**
      * Same as getName()
      */
-    public String toString() { return getName(); }
+    public String toString() {
+        return getName();
+    }
 }



1.9       +4 -2      e/src/jsrc/org/erights/e/elib/slot/NullOkMaker.java

Index: NullOkMaker.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/slot/NullOkMaker.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- NullOkMaker.java	2001/09/07 05:49:23	1.8
+++ NullOkMaker.java	2001/11/10 19:40:48	1.9
@@ -87,7 +87,7 @@
             return new NullOkMaker(valueGuard);
         } else {
             throw new RuntimeException(
-                "can only combine with one ValueGuard");
+              "can only combine with one ValueGuard");
         }
     }
 
@@ -108,7 +108,9 @@
     /**
      * Same as getName()
      */
-    public String toString() { return getName(); }
+    public String toString() {
+        return getName();
+    }
 
     /**
      *



1.15      +0 -1      e/src/jsrc/org/erights/e/elib/slot/RuinedSlot.java

Index: RuinedSlot.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/slot/RuinedSlot.java,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- RuinedSlot.java	2001/10/01 08:31:05	1.14
+++ RuinedSlot.java	2001/11/10 19:40:48	1.15
@@ -23,7 +23,6 @@
 
 import org.erights.e.develop.exception.ExceptionMgr;
 import org.erights.e.elib.eio.TextWriter;
-import org.erights.e.elib.prim.E;
 
 import java.io.IOException;
 



1.13      +2 -2      e/src/jsrc/org/erights/e/elib/slot/SettableSlot.java

Index: SettableSlot.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/slot/SettableSlot.java,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- SettableSlot.java	2001/09/07 05:49:23	1.12
+++ SettableSlot.java	2001/11/10 19:40:48	1.13
@@ -35,6 +35,7 @@
 public class SettableSlot implements Slot {
 
     private ValueGuard myValueGuard;
+
     private Object myValue;
 
     /**
@@ -43,8 +44,7 @@
      */
     /*package*/ SettableSlot(ValueGuard valueGuard,
                              Object specimen,
-                             OneArgFunc optEjector)
-    {
+                             OneArgFunc optEjector) {
         myValueGuard = valueGuard;
         myValue = myValueGuard.coerce(specimen, optEjector);
     }



1.8       +7 -3      e/src/jsrc/org/erights/e/elib/slot/SettableSlotMaker.java

Index: SettableSlotMaker.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/slot/SettableSlotMaker.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- SettableSlotMaker.java	2001/09/07 05:49:23	1.7
+++ SettableSlotMaker.java	2001/11/10 19:40:48	1.8
@@ -75,7 +75,7 @@
             return new SettableSlotMaker(valueGuard);
         } else {
             throw new RuntimeException(
-                "can only combine with one ValueGuard");
+              "can only combine with one ValueGuard");
         }
     }
 
@@ -89,10 +89,14 @@
     /**
      * "settable"
      */
-    public String getName() { return "settable"; }
+    public String getName() {
+        return "settable";
+    }
 
     /**
      * Same as getName()
      */
-    public String toString() { return getName(); }
+    public String toString() {
+        return getName();
+    }
 }



1.16      +1 -0      e/src/jsrc/org/erights/e/elib/slot/SimpleSlot.java

Index: SimpleSlot.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/slot/SimpleSlot.java,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -r1.15 -r1.16
--- SimpleSlot.java	2001/09/07 05:49:23	1.15
+++ SimpleSlot.java	2001/11/10 19:40:48	1.16
@@ -18,6 +18,7 @@
 
 Contributor(s): ______________________________________.
 */
+
 import org.erights.e.elib.eio.TextWriter;
 
 import java.io.IOException;



1.6       +5 -2      e/src/jsrc/org/erights/e/elib/slot/SimpleSlotMaker.java

Index: SimpleSlotMaker.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/slot/SimpleSlotMaker.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- SimpleSlotMaker.java	2001/09/06 09:55:51	1.5
+++ SimpleSlotMaker.java	2001/11/10 19:40:48	1.6
@@ -35,7 +35,8 @@
     /** The one instance */
     static public final SimpleSlotMaker THE_ONE = new SimpleSlotMaker();
 
-    private SimpleSlotMaker() {}
+    private SimpleSlotMaker() {
+    }
 
     /**
      * Any specimen is acceptable as is, so returns the specimen unchanged.
@@ -61,5 +62,7 @@
     /**
      * Same as getName()
      */
-    public String toString() { return getName(); }
+    public String toString() {
+        return getName();
+    }
 }



1.7       +8 -3      e/src/jsrc/org/erights/e/elib/slot/SlotDefiner.java

Index: SlotDefiner.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/slot/SlotDefiner.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- SlotDefiner.java	2001/09/06 09:55:51	1.6
+++ SlotDefiner.java	2001/11/10 19:40:48	1.7
@@ -41,7 +41,8 @@
     /**
      *
      */
-    private SlotDefiner() {}
+    private SlotDefiner() {
+    }
 
     /**
      * @return the specimen
@@ -53,10 +54,14 @@
     /**
      * "defineSlot"
      */
-    public String getName() { return "defineSlot"; }
+    public String getName() {
+        return "defineSlot";
+    }
 
     /**
      * Same as getName()
      */
-    public String toString() { return getName(); }
+    public String toString() {
+        return getName();
+    }
 }



1.6       +5 -2      e/src/jsrc/org/erights/e/elib/slot/VoidMaker.java

Index: VoidMaker.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/slot/VoidMaker.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- VoidMaker.java	2001/09/06 09:55:51	1.5
+++ VoidMaker.java	2001/11/10 19:40:48	1.6
@@ -39,7 +39,8 @@
     /**
      * prevent external instantiation
      */
-    private VoidMaker() {}
+    private VoidMaker() {
+    }
 
     /**
      * Coerce everything to null.
@@ -58,5 +59,7 @@
     /**
      * Same as getName()
      */
-    public String toString() { return getName(); }
+    public String toString() {
+        return getName();
+    }
 }



1.6       +2 -1      e/src/jsrc/org/erights/e/elib/tables/ArrayedList.java

Index: ArrayedList.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/tables/ArrayedList.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- ArrayedList.java	2001/09/06 09:55:51	1.5
+++ ArrayedList.java	2001/11/10 19:40:48	1.6
@@ -25,7 +25,8 @@
  *
  * @author <a href="mailto:markm@erights.org">Mark S. Miller</a>
  */
-/*package*/ interface ArrayedList {
+/*package*/
+interface ArrayedList {
 
     /**
      *



1.7       +2 -1      e/src/jsrc/org/erights/e/elib/tables/AtomicTwine.java

Index: AtomicTwine.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/tables/AtomicTwine.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- AtomicTwine.java	2001/11/04 00:38:12	1.6
+++ AtomicTwine.java	2001/11/10 19:40:48	1.7
@@ -26,7 +26,8 @@
  *
  * @author <a href="mailto:markm@erights.org">Mark S. Miller</a>
  */
-/*package*/ abstract class AtomicTwine extends Twine {
+/*package*/
+abstract class AtomicTwine extends Twine {
 
     static private final long serialVersionUID = 2310317145102038297L;
 



1.16      +2 -1      e/src/jsrc/org/erights/e/elib/tables/Column.java

Index: Column.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/tables/Column.java,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -r1.15 -r1.16
--- Column.java	2001/09/06 09:55:51	1.15
+++ Column.java	2001/11/10 19:40:48	1.16
@@ -30,7 +30,8 @@
  */
 abstract /*package*/ class Column implements Cloneable {
 
-    /*package*/ Column() {}
+    /*package*/ Column() {
+    }
 
     /**
      * A shallow copy of the column.  The members are shared, not copied.



1.12      +8 -7      e/src/jsrc/org/erights/e/elib/tables/CompositeTwine.java

Index: CompositeTwine.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/tables/CompositeTwine.java,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- CompositeTwine.java	2001/11/04 00:38:12	1.11
+++ CompositeTwine.java	2001/11/10 19:40:48	1.12
@@ -29,7 +29,8 @@
  *
  * @author <a href="mailto:markm@erights.org">Mark S. Miller</a>
  */
-/*package*/ final class CompositeTwine extends Twine {
+/*package*/
+final class CompositeTwine extends Twine {
 
     static private final long serialVersionUID = -4692386437819865069L;
 
@@ -69,7 +70,7 @@
      *
      */
     public ConstList run(int start, int bound)
-    throws IndexOutOfBoundsException{
+      throws IndexOutOfBoundsException {
 
         int len = size();
         if (start < 0 || bound > len || start > bound) {
@@ -84,18 +85,18 @@
         int leftOffset = leftPair[1];
         Twine left = (AtomicTwine)myParts.get(leftIndex);
 
-        int[] rightPair = getPartAt(bound -1);
+        int[] rightPair = getPartAt(bound - 1);
         int rightIndex = rightPair[0];
         int rightOffset = rightPair[1];
 
         if (leftIndex == rightIndex) {
-            return left.run(leftOffset, rightOffset +1);
+            return left.run(leftOffset, rightOffset + 1);
         } else {
             Twine result = (Twine)left.run(leftOffset, left.size());
-            ConstList middle = myParts.run(leftIndex +1, rightIndex);
+            ConstList middle = myParts.run(leftIndex + 1, rightIndex);
             result = (Twine)result.add(Twine.fromParts(middle));
             Twine right = (AtomicTwine)myParts.get(rightIndex);
-            right = (Twine)right.run(0, rightOffset +1);
+            right = (Twine)right.run(0, rightOffset + 1);
             result = (Twine)result.add(right);
             return result;
         }
@@ -178,7 +179,7 @@
         for (int i = 0; i < myParts.size(); i++) {
             Twine part = (Twine)myParts.get(i);
             int len = part.size();
-            String segment = str.substring(pos, pos+len);
+            String segment = str.substring(pos, pos + len);
             result = (Twine)result.add(part.infectOneToOne(segment));
             pos += len;
         }



1.17      +4 -3      e/src/jsrc/org/erights/e/elib/tables/ConstList.java

Index: ConstList.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/tables/ConstList.java,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -r1.16 -r1.17
--- ConstList.java	2001/09/07 05:49:23	1.16
+++ ConstList.java	2001/11/10 19:40:48	1.17
@@ -34,7 +34,7 @@
  * @author <a href="mailto:markm@erights.org">Mark S. Miller</a>
  */
 public abstract class ConstList
-extends EList implements PassByConstruction, Selfless {
+  extends EList imp