From: Jan T. <de...@us...> - 2002-06-02 19:31:26
|
Update of /cvsroot/net-script/netscript2/src/perl/NetScript/Engine In directory usw-pr-cvs1:/tmp/cvs-serv570/Engine Modified Files: BasicStatement.pm DOMWalker.pm EventListener.pm EventRelay.pm StatementEvaluator.pm wipeout.project Added Files: ClassWrapper.pm FunctionWrapper.pm MemberWrapper.pm Log Message: * added library include facility * moved Wrappers to Engine * added emergency error page (if error page is missing) * changed configfilereader to be more generic * some performance improvements * overall bugfixing --- NEW FILE: ClassWrapper.pm --- #-------------------------------------------------------- # $Id: ClassWrapper.pm,v 1.1 2002/06/02 19:31:23 derkork Exp $ # # NetScript and all related materials, such as documentation, # are protected under the terms and conditions of the Artistic License. # (C) 2000-2002 by Jan Thomä, insOMnia # mailto: ko...@in... #-------------------------------------------------------- use strict; #/** # This class is a wrapper around a class object. # It is used by libraries which want to create objects at # runtime, without creating a class for it. #*/ package NetScript::Engine::ClassWrapper; use base qw(NetScript::Engine::Class); use NetScript::Engine::FunctionWrapper; use NetScript::Engine::MemberWrapper; #-------------------------------------------------------- # Globals #-------------------------------------------------------- #/** # Ctor. # @param an object that should be wrapped and being represented # as a class. #*/ sub new { my ($proto, $object) = @_; my $proto = shift; # get Prototype my $class = ref( $proto ) || $proto;# get the Classname my $this = $class -> SUPER::new(); $this -> { m_Object } = $object; return $this; # return Object } #/** # Sets the given function. A FunctionWrapper will be # created for the given function name. If this function # is invoked, the given sub on the wrapped object will be called. # @param the name of the function to create # @param the name of the sub which should be called upon invocation # of the function. #*/ sub setFunction { my ($this, $function, $subToCall ) = @_; my $wrapper = NetScript::Engine::FunctionWrapper -> new( $this -> object(), $function, $subToCall ); $this -> functions() -> { $function } = $wrapper; } #/** # Sets the given member. A MemberWrapper will be created. # The given subs will be called upon setting and retrieval # of the given member. The given subs will be called with # two parameters. The first one is the member name actually # used, the second is the new member value (in case of setting # or undef in case of retrieval). # @param a regexp matching a member name # @param the name of the sub to be called on setting of the member # @param the name of the sub to be called on retrieval of the member. # @public #*/ sub setMember { my ($this, $member, $subOnSetting, $subOnRetrieval ) = @_; my $memberWrapper = NetScript::Engine::MemberWrapper -> new( $this, $this -> object(), $subOnSetting, $subOnRetrieval ); $this -> members() -> { $member } = $memberWrapper; } sub member { my ( $this, $member ) = @_; for ( keys( %{$this -> members() } ) ) { if ( $member =~ /$_/ ) { # if the given member name matches an regexp my $memberObject = $this -> members() -> { $_ } -> clone(); $memberObject -> setName( $member ); return $memberObject; } } return undef; } #/** # Returns the wrapped object. # @private #*/ sub object { my ( $this ) = @_; $this -> { m_Object }; } 1; # make "require" happy --- NEW FILE: FunctionWrapper.pm --- #-------------------------------------------------------- # $Id: FunctionWrapper.pm,v 1.1 2002/06/02 19:31:23 derkork Exp $ # # NetScript and all related materials, such as documentation, # are protected under the terms and conditions of the Artistic License. # (C) 2000-2002 by Jan Thomä, insOMnia # mailto: ko...@in... #-------------------------------------------------------- use strict; #/** # This class represents a Function. It wraps around an object # and calls a sub upon invocation of the function. #*/ package NetScript::Engine::FunctionWrapper; use base qw(NetScript::Engine::Function); #-------------------------------------------------------- # Globals #-------------------------------------------------------- #/** # Ctor. # @param the parent class object of this function. # @param the object on which the sub should be invocated # @param the sub to be called upon invocation of this function. #*/ sub new { my ($proto, $parent, $object, $subToCall ) = @_; my $proto = shift; # get Prototype my $class = ref( $proto ) || $proto;# get the Classname my $this = $class -> SUPER::new( $parent ); $this -> { m_Object } = $object; $this -> { m_SubToCall } = $subToCall; return $this; # return Object } #/** # Invokes this sub. A list of parameters is given as argument # @optional one or more parameters #*/ sub invoke { my ( $this, @args ) = @_; my $sub = $this -> { m_SubToCall }; $this -> { m_Object } -> $sub( @args ); } 1; # make "require" happy --- NEW FILE: MemberWrapper.pm --- #-------------------------------------------------------- # $Id: MemberWrapper.pm,v 1.1 2002/06/02 19:31:23 derkork Exp $ # # NetScript and all related materials, such as documentation, # are protected under the terms and conditions of the Artistic License. # (C) 2000-2002 by Jan Thomä, insOMnia # mailto: ko...@in... #-------------------------------------------------------- use strict; #/** # This class represents a Member. It wraps around an # object and calls methods of the wrapped object # on setting and retrieval of member values. # @public #*/ package NetScript::Engine::MemberWrapper; use base qw(NetScript::Engine::Member); #-------------------------------------------------------- # Globals #-------------------------------------------------------- #/** # Ctor. # @param the parent class object # @param the object on which the subs should be called # @param a sub that should be called upon member setting # @param a sub that should be called upon member retrieval #*/ sub new { my ($proto, $parent, $object, $subOnSetting, $subOnRetrieval ) = @_; my $proto = shift; # get Prototype my $class = ref( $proto ) || $proto;# get the Classname my $this = $class -> SUPER::new( $parent ); $this -> { m_Name } = ""; $this -> { m_SubOnSetting } = $subOnSetting; $this -> { m_SubOnRetrieval } = $subOnRetrieval; $this -> { m_Object } = $object; return $this; # return Object } #/** # Sets the name of this member. # @protected. #*/ sub setName { my ( $this, $name ) = @_; $this -> { m_Name } = $name; } #/** # Returns the value of this member #*/ sub value { my ( $this ) = @_; my $sub = $this -> { m_SubOnRetrieval }; $this -> { m_Object } -> $sub ( $this -> { m_Name } ); } #/** # Sets the value of this member. # @param a scalar holding the value of this member. #*/ sub setValue { my ( $this, $value ) = @_; my $sub = $this -> { m_SubOnSetting }; $this -> { m_Object } -> $sub( $this -> { m_Name }, $value ); } #/** # Creates a clone of this wrapper. # @return an instance of NetScript::Engine::MemberWrapper. # @protected #*/ sub clone { my ( $this ) = @_; my $clone = NetScript::Engine::MemberWrapper -> new ( $this -> parent(), $this -> { m_Object }, $this -> { m_SubOnSetting }, $this -> { m_SubOnRetrieval } ); $clone; } 1; # make "require" happy Index: BasicStatement.pm =================================================================== RCS file: /cvsroot/net-script/netscript2/src/perl/NetScript/Engine/BasicStatement.pm,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** BasicStatement.pm 15 May 2002 18:21:37 -0000 1.5 --- BasicStatement.pm 2 Jun 2002 19:31:23 -0000 1.6 *************** *** 24,27 **** --- 24,28 ---- use XML::DOM2::Node; + use NetScript::Libraries::DebugLibrary; #-------------------------------------------------------- *************** *** 77,84 **** # attributes in elements will be checked for variables my $attributes = $newNode -> attributes(); ! my $length = $attributes -> length(); ! for ( 0..$length-1 ) { ! my $attribute = $attributes -> item( { item => $_ } ); my $value = $attribute -> value(); $value = $interpreter -> getStatementEvaluator() -> evaluateStatement( $value ); --- 78,86 ---- # attributes in elements will be checked for variables my $attributes = $newNode -> attributes(); ! my $length = $attributes -> length() -1; ! for ( 0..$length ) { ! my $attribute = $attributes -> item( { index => $_ } ); my $value = $attribute -> value(); + my $name = $attribute -> nodeName(); $value = $interpreter -> getStatementEvaluator() -> evaluateStatement( $value ); *************** *** 98,101 **** --- 100,127 ---- $this -> SUPER::evaluate(); $newNode; + } + + #/** + # Returns an instance of NetScript::Interpreter. + # @private + #*/ + sub interpreter { + my ( $this ) = @_; + $this -> { m_interpreter }; + } + + #/** + # Sends a debug event. + # @param the debug message + # @private + #*/ + sub debug { + my ($this, $message) = @_; + $this -> interpreter() -> getEventRelay() -> + createAndRaiseEvent( + $NetScript::Libraries::DebugLibrary::DEBUG_EVENT, + $message, + "[Interpreter]" + ); } Index: DOMWalker.pm =================================================================== RCS file: /cvsroot/net-script/netscript2/src/perl/NetScript/Engine/DOMWalker.pm,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** DOMWalker.pm 15 May 2002 18:21:37 -0000 1.4 --- DOMWalker.pm 2 Jun 2002 19:31:23 -0000 1.5 *************** *** 27,30 **** --- 27,34 ---- use XML::DOM2::Node; + use vars qw( $DOCUMENT_START_EVENT $DOCUMENT_END_EVENT $ELEMENT_START_EVENT + $ELEMENT_END_EVENT $ELEMENT_END_EVENT $OTHER_NODE_EVENT $TEXT_EVENT + $COMMENT_EVENT $PI_EVENT ); + #/** # Event which is generated upon start of the document *************** *** 32,36 **** # @final #*/ ! our $DOCUMENT_START_EVENT = "DOMWALKER_DOCUMENT_START_EVENT"; #/** --- 36,40 ---- # @final #*/ ! $DOCUMENT_START_EVENT = "DOMWALKER_DOCUMENT_START_EVENT"; #/** *************** *** 39,43 **** # @final #*/ ! our $DOCUMENT_END_EVENT = "DOMWALKER_DOCUMENT_END_EVENT"; #/** --- 43,47 ---- # @final #*/ ! $DOCUMENT_END_EVENT = "DOMWALKER_DOCUMENT_END_EVENT"; #/** *************** *** 46,50 **** # @final #*/ ! our $ELEMENT_START_EVENT = "DOMWALKER_ELEMENT_START_EVENT"; #/** --- 50,54 ---- # @final #*/ ! $ELEMENT_START_EVENT = "DOMWALKER_ELEMENT_START_EVENT"; #/** *************** *** 53,57 **** # @final #*/ ! our $ELEMENT_END_EVENT = "DOMWALKER_ELEMENT_END_EVENT"; #/** --- 57,61 ---- # @final #*/ ! $ELEMENT_END_EVENT = "DOMWALKER_ELEMENT_END_EVENT"; #/** *************** *** 60,64 **** # @final #*/ ! our $PI_EVENT = "DOMWALKER_PI_EVENT"; #/** --- 64,68 ---- # @final #*/ ! $PI_EVENT = "DOMWALKER_PI_EVENT"; #/** *************** *** 67,71 **** # @final #*/ ! our $OTHER_NODE_EVENT = "DOMWALKER_OTHER_NODE_EVENT"; #/** --- 71,75 ---- # @final #*/ ! $OTHER_NODE_EVENT = "DOMWALKER_OTHER_NODE_EVENT"; #/** *************** *** 74,78 **** # @final #*/ ! our $TEXT_EVENT = "DOMWALKER_TEXT_EVENT"; #/** --- 78,82 ---- # @final #*/ ! $TEXT_EVENT = "DOMWALKER_TEXT_EVENT"; #/** *************** *** 81,85 **** # @final #*/ ! our $COMMENT_EVENT = "DOMWALKER_COMMENT_EVENT"; #/** --- 85,89 ---- # @final #*/ ! $COMMENT_EVENT = "DOMWALKER_COMMENT_EVENT"; #/** *************** *** 318,322 **** sub stepSourceUp { my ($this) = @_; ! my $source -> $this -> currentSource(); $this -> setCurrentSource( $source -> parentNode() ); } --- 322,326 ---- sub stepSourceUp { my ($this) = @_; ! my $source = $this -> currentSource(); $this -> setCurrentSource( $source -> parentNode() ); } Index: EventListener.pm =================================================================== RCS file: /cvsroot/net-script/netscript2/src/perl/NetScript/Engine/EventListener.pm,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** EventListener.pm 15 May 2002 18:21:37 -0000 1.3 --- EventListener.pm 2 Jun 2002 19:31:23 -0000 1.4 *************** *** 27,30 **** --- 27,31 ---- #-------------------------------------------------------- + use vars qw( $PRIORITY_FIRST $PRIORITY_LAST ); #/** *************** *** 33,37 **** # @final #*/ ! our $PRIORITY_FIRST = 1; #/** --- 34,38 ---- # @final #*/ ! $PRIORITY_FIRST = 1; #/** *************** *** 40,44 **** # @final #*/ ! our $PRIORITY_LAST = 2; #/** --- 41,45 ---- # @final #*/ ! $PRIORITY_LAST = 2; #/** Index: EventRelay.pm =================================================================== RCS file: /cvsroot/net-script/netscript2/src/perl/NetScript/Engine/EventRelay.pm,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** EventRelay.pm 15 May 2002 18:21:37 -0000 1.7 --- EventRelay.pm 2 Jun 2002 19:31:23 -0000 1.8 *************** *** 13,22 **** # relay events within the Interpreter to their receivers. # does hold variable settings and arrays. Events are ! # sent using a FIFO principle. This means that events which ! # are raised first, will be sent first. An event which is # raised by a client upon reception of another event, will be fired ! # after the current event has been delivered to all clients. ! # So this implementation guarantees that all events will be ! # delivered in the same temporal order as they have been raised. #*/ package NetScript::Engine::EventRelay; --- 13,21 ---- # relay events within the Interpreter to their receivers. # does hold variable settings and arrays. Events are ! # sent using a LIFO principle. This means that events which ! # are raised last, will be sent first. An event which is # raised by a client upon reception of another event, will be fired ! # immediately, any events fired before it will be suspended, until ! # the last event is delivered. #*/ package NetScript::Engine::EventRelay; *************** *** 108,112 **** my $index = 0; for ( @attachedListeners ) { ! delete $attachedListeners[$index], last if $_ == $listener; $index++; --- 107,111 ---- my $index = 0; for ( @attachedListeners ) { ! splice( @attachedListeners, $index, 1 ) , last if $_ == $listener; $index++; *************** *** 140,153 **** sub raiseEvent { my ($this, $event) = @_; - # if there is currently an event on delivery, we - # save the new event and return. the new event - # will be sent after the current event was sent. - # if ( $this -> { m_deliveringEvents } ) { - # push( @{$this -> { m_pendingEvents }}, $event ); - # return; - # } - - # now we deliver events - # $this -> { m_deliveringEvents } = 1; my $arrayRef = $this -> { m_EventListeners } -> --- 139,142 ---- *************** *** 162,173 **** } } - - # we have delivered the current event. - # $this -> { m_deliveringEvents } = 0; - - # now lets look if there are some events in the queue - # my $nextEvent = shift( @{$this -> { m_pendingEvents }} ); - # if there is one, deliver it. - # $this -> raiseEvent( $nextEvent ) if defined($nextEvent); } --- 151,154 ---- Index: StatementEvaluator.pm =================================================================== RCS file: /cvsroot/net-script/netscript2/src/perl/NetScript/Engine/StatementEvaluator.pm,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** StatementEvaluator.pm 29 May 2002 20:26:17 -0000 1.6 --- StatementEvaluator.pm 2 Jun 2002 19:31:23 -0000 1.7 *************** *** 28,45 **** #/** - # Constant for String-Filter. - # @public - # @final - #*/ - our $STRING_FILTER = "STRING"; - - #/** - # Constant for XML-Filter. - # @public - # @final - #*/ - our $XML_FILTER = "XML"; - - #/** # Ctor. # @param an instance of NetScript::Interpreter --- 28,31 ---- *************** *** 100,104 **** } - $this -> debug( "Pref: |$pref| Action: |$action| Param: |$param| Suff: |$suff|" ); if ( $pref =~ /^(.*?[^\\]?)\$$/ ) { --- 86,89 ---- *************** *** 170,174 **** my $result = $this -> interpreter() -> getState() -> getArrayValue( $array, $index ); - $this -> debug( "Getting array index: $array:$index = $result" ); # TODO: check for undef $result; --- 155,158 ---- *************** *** 198,202 **** getObjectValue( $object ); - $this -> debug( "Getting member: $member of $object..." ); # $object is an instance of Class return undef unless $object ; --- 182,185 ---- Index: wipeout.project =================================================================== RCS file: /cvsroot/net-script/netscript2/src/perl/NetScript/Engine/wipeout.project,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** wipeout.project 29 May 2002 20:26:04 -0000 1.8 --- wipeout.project 2 Jun 2002 19:31:23 -0000 1.9 *************** *** 1,314 **** b ! C DmDictionary 0 11cd5 8 ! c 0 11f96 9 ! C Category 1 5226 ! c 0 11fd6 4 ! C DmString 2 11fdd 2 e3 ! c 2 11fdc a defaultExe ! C DmSet 3 11fdf 1 ! c 2 5235 2 e3 ! L 5235 ! c 2 11fde b executables ! c 3 11fda 3 ! c 2 523c 3 *.C ! L 523c ! c 2 523f 4 *.cc ! L 523f ! c 2 5242 5 *.cpp ! L 5242 ! c 2 11fd9 a extensions ! c 2 11fd8 a CPP_source ! c 2 11fd7 4 name ! c 2 11f98 a CPP_source ! c 1 5257 ! c 0 1201c 4 ! c 2 12023 2 e3 ! c 2 12022 a defaultExe ! c 3 12025 1 ! c 2 5264 2 e3 ! L 5264 ! c 2 12024 b executables ! c 3 12020 1 ! c 2 526b 3 *.c ! L 526b ! c 2 1201f a extensions ! c 2 1201e 8 C_source ! c 2 1201d 4 name ! c 2 11f99 8 C_source ! c 1 5280 ! c 0 12056 4 ! c 2 1205d 2 e3 ! c 2 1205c a defaultExe ! c 3 1205f 1 ! c 2 528d 2 e3 ! L 528d ! c 2 1205e b executables ! c 3 1205a 1 ! c 2 5294 3 *.e ! L 5294 ! c 2 12059 a extensions ! c 2 12058 6 Eiffel ! c 2 12057 4 name ! c 2 11f9a 6 Eiffel ! c 1 52a9 ! c 0 12090 4 ! c 2 12097 2 e3 ! c 2 12096 a defaultExe ! c 3 12099 1 ! c 2 52b6 2 e3 ! L 52b6 ! c 2 12098 b executables ! c 3 12094 4 ! c 2 52bd 3 *.F ! L 52bd ! c 2 52c0 3 *.f ! L 52c0 ! c 2 52c3 5 *.for ! L 52c3 ! c 2 52c6 5 *.fpp ! L 52c6 ! c 2 12093 a extensions ! c 2 12092 7 Fortran ! c 2 12091 4 name ! c 2 11f9b 7 Fortran ! c 1 52db ! c 0 120d6 4 ! c 2 120dd 2 e3 ! c 2 120dc a defaultExe ! c 3 120df 1 ! c 2 52e8 2 e3 ! L 52e8 ! c 2 120de b executables ! c 3 120da 2 ! c 2 52ef 3 *.H ! L 52ef ! c 2 52f2 3 *.h ! L 52f2 ! c 2 120d9 a extensions ! c 2 120d8 6 Header ! c 2 120d7 4 name ! c 2 11f9c 6 Header ! c 1 5307 ! c 0 12114 4 ! c 2 1211b 9 surfboard ! c 2 1211a a defaultExe ! c 3 1211d 2 ! c 2 5314 2 e3 ! L 5314 ! c 2 5317 9 surfboard ! L 5317 ! c 2 1211c b executables ! c 3 12118 2 ! c 2 531e 5 *.htm ! L 531e ! c 2 5321 6 *.html ! L 5321 ! c 2 12117 a extensions ! c 2 12116 4 Html ! c 2 12115 4 name ! c 2 11f9d 4 Html ! c 1 5336 ! c 0 12156 4 ! c 2 1215d 2 e3 ! c 2 1215c a defaultExe ! c 3 1215f 1 ! c 2 5343 2 e3 ! L 5343 ! c 2 1215e b executables ! c 3 1215a 1 ! c 2 534a 6 *.java ! L 534a ! c 2 12159 a extensions ! c 2 12158 4 Java ! c 2 12157 4 name ! c 2 11f9e 4 Java ! c 1 535f ! c 0 12190 4 ! c 2 12197 2 e3 ! c 2 12196 a defaultExe ! c 3 12199 1 ! c 2 536c 2 e3 ! L 536c ! c 2 12198 b executables ! c 3 12194 1 ! c 2 5373 5 *.tex ! L 5373 ! c 2 12193 a extensions ! c 2 12192 5 Latex ! c 2 12191 4 name ! c 2 11f9f 5 Latex ! c 1 5388 ! c 0 121ca 4 ! c 2 121d1 2 e3 ! c 2 121d0 a defaultExe ! c 3 121d3 1 ! c 2 5395 2 e3 ! L 5395 ! c 2 121d2 b executables ! c 3 121ce 0 ! c 2 121cd a extensions ! c 2 121cc 5 Other ! c 2 121cb 4 name ! c 2 11fa0 5 Other ! c 2 11f95 a categories ! c 0 11fa2 1 ! C ProjectDir 4 53b2 ! c 2 53b3 25 netscript2/src/perl/NetScript/Engine/ 11 81 ! c 2 53b4 0 0 ! c 2 11fa4 25 netscript2/src/perl/NetScript/Engine/ ! c 2 11fa1 b directories ! C DmBag 5 11ce1 d ! c 2 11d17 e1 b ! C DmDictionary 0 11ce3 3 ! C DmString 1 11cf5 36 b ! C DmSet 0 53fc 1 ! C DmString 1 542a 5 Other ! L 542a ! c 1 11cf4 a categories ! c 1 11ce5 11 BasicStatement.pm ! c 1 11ce4 4 name ! C DmInteger 2 11cf7 1 ! c 1 11cf6 9 substMode ! c 2 11d4c e8 b ! C DmDictionary 0 11d18 3 ! C DmString 1 11d2a 36 b ! C DmSet 0 543b 1 ! C DmString 1 5469 5 Other ! L 5469 ! c 1 11d29 a categories ! c 1 11d1a 11 BlockStatement.pm ! c 1 11d19 4 name ! C DmInteger 2 11d2c 80000001 ! c 1 11d2b 9 substMode ! c 2 11d81 d7 b ! C DmDictionary 0 11d4d 3 ! C DmString 1 11d5f 36 b ! C DmSet 0 547a 1 ! C DmString 1 54a8 5 Other ! L 54a8 ! c 1 11d5e a categories ! c 1 11d4f 8 Class.pm ! c 1 11d4e 4 name ! C DmInteger 2 11d61 1 ! c 1 11d60 9 substMode ! c 2 11db6 e7 b ! C DmDictionary 0 11d82 3 ! C DmString 1 11d94 36 b ! C DmSet 0 54b9 1 ! C DmString 1 54e7 5 Other ! L 54e7 ! c 1 11d93 a categories ! c 1 11d84 10 CopyStatement.pm ! c 1 11d83 4 name ! C DmInteger 2 11d96 80000001 ! c 1 11d95 9 substMode ! c 2 11deb db b ! C DmDictionary 0 11db7 3 ! C DmString 1 11dc9 36 b ! C DmSet 0 54f8 1 ! C DmString 1 5526 5 Other ! L 5526 ! c 1 11dc8 a categories ! c 1 11db9 c DOMWalker.pm ! c 1 11db8 4 name ! C DmInteger 2 11dcb 1 ! c 1 11dca 9 substMode ! c 2 11e20 d7 b ! C DmDictionary 0 11dec 3 ! C DmString 1 11dfe 36 b ! C DmSet 0 5537 1 ! C DmString 1 5565 5 Other ! L 5565 ! c 1 11dfd a categories ! c 1 11dee 8 Event.pm ! c 1 11ded 4 name ! C DmInteger 2 11e00 1 ! c 1 11dff 9 substMode ! c 2 11e55 e0 b ! C DmDictionary 0 11e21 3 ! C DmString 1 11e33 36 b ! C DmSet 0 5576 1 ! C DmString 1 55a4 5 Other ! L 55a4 ! c 1 11e32 a categories ! c 1 11e23 10 EventListener.pm ! c 1 11e22 4 name ! C DmInteger 2 11e35 1 ! c 1 11e34 9 substMode ! c 2 11e8a dc b ! C DmDictionary 0 11e56 3 ! C DmString 1 11e68 36 b ! C DmSet 0 55b5 1 ! C DmString 1 55e3 5 Other ! L 55e3 ! c 1 11e67 a categories ! c 1 11e58 d EventRelay.pm ! c 1 11e57 4 name ! C DmInteger 2 11e6a 1 ! c 1 11e69 9 substMode ! c 2 11ebf da b ! C DmDictionary 0 11e8b 3 ! C DmString 1 11e9d 36 b ! C DmSet 0 ecd1 1 ! C DmString 1 ee4b 5 Other ! L ee4b ! c 1 11e9c a categories ! c 1 11e8d b Function.pm ! c 1 11e8c 4 name ! C DmInteger 2 11e9f 1 ! c 1 11e9e 9 substMode ! c 2 11ef4 db b ! C DmDictionary 0 11ec0 3 ! C DmString 1 11ed2 39 b ! C DmSet 0 11b50 1 ! C DmString 1 11cca 5 Other ! L 11cca ! c 1 11ed1 a categories ! c 1 11ec2 9 Member.pm ! c 1 11ec1 4 name ! C DmInteger 2 11ed4 1 ! c 1 11ed3 9 substMode ! c 2 11f29 d7 b ! C DmDictionary 0 11ef5 3 ! C DmString 1 11f07 36 b ! C DmSet 0 55f4 1 ! C DmString 1 5622 5 Other ! L 5622 ! c 1 11f06 a categories ! c 1 11ef7 8 State.pm ! c 1 11ef6 4 name ! C DmInteger 2 11f09 1 ! c 1 11f08 9 substMode ! c 2 11f5e db b ! C DmDictionary 0 11f2a 3 ! C DmString 1 11f3c 36 b ! C DmSet 0 5633 1 ! C DmString 1 5661 5 Other ! L 5661 ! c 1 11f3b a categories ! c 1 11f2c c Statement.pm ! c 1 11f2b 4 name ! C DmInteger 2 11f3e 1 ! c 1 11f3d 9 substMode ! c 2 11f93 e5 b ! C DmDictionary 0 11f5f 3 ! C DmString 1 11f71 36 b ! C DmSet 0 5672 1 ! C DmString 1 56a0 5 Other ! L 56a0 ! c 1 11f70 a categories ! c 1 11f61 15 StatementEvaluator.pm ! c 1 11f60 4 name ! C DmInteger 2 11f73 1 ! c 1 11f72 9 substMode ! c 2 11f94 5 files ! c 2 11cdd 94 xterm -ls -fn -*-lucidatypewriter-medium-r-normal-*-12-* -bg gray90 -T Program -geometry 80x10+0+0 -e "[set command with 'Project->Launch Command']" ! c 2 11cdc 6 launch ! c 2 11cd9 4 make ! c 2 11cd8 4 make ! c 2 11cdb 0 ! c 2 11cda 8 makeFile ! c 5 11cde 0 ! c 2 11ce0 7 modules ! c 2 11cd7 6 Engine ! c 2 11cd6 4 name --- 1,347 ---- b ! C DmDictionary 0 1ebf4 8 ! c 0 1ef54 9 ! C Category 1 585c ! c 0 1ef94 4 ! C DmString 2 1ef9b 2 e3 ! c 2 1ef9a a defaultExe ! C DmSet 3 1ef9d 1 ! c 2 586b 2 e3 ! L 586b ! c 2 1ef9c b executables ! c 3 1ef98 3 ! c 2 5872 3 *.C ! L 5872 ! c 2 5875 4 *.cc ! L 5875 ! c 2 5878 5 *.cpp ! L 5878 ! c 2 1ef97 a extensions ! c 2 1ef96 a CPP_source ! c 2 1ef95 4 name ! c 2 1ef56 a CPP_source ! c 1 588d ! c 0 1efda 4 ! c 2 1efe1 2 e3 ! c 2 1efe0 a defaultExe ! c 3 1efe3 1 ! c 2 589a 2 e3 ! L 589a ! c 2 1efe2 b executables ! c 3 1efde 1 ! c 2 58a1 3 *.c ! L 58a1 ! c 2 1efdd a extensions ! c 2 1efdc 8 C_source ! c 2 1efdb 4 name ! c 2 1ef57 8 C_source ! c 1 58b6 ! c 0 1f014 4 ! c 2 1f01b 2 e3 ! c 2 1f01a a defaultExe ! c 3 1f01d 1 ! c 2 58c3 2 e3 ! L 58c3 ! c 2 1f01c b executables ! c 3 1f018 1 ! c 2 58ca 3 *.e ! L 58ca ! c 2 1f017 a extensions ! c 2 1f016 6 Eiffel ! c 2 1f015 4 name ! c 2 1ef58 6 Eiffel ! c 1 58df ! c 0 1f04e 4 ! c 2 1f055 2 e3 ! c 2 1f054 a defaultExe ! c 3 1f057 1 ! c 2 58ec 2 e3 ! L 58ec ! c 2 1f056 b executables ! c 3 1f052 4 ! c 2 58f3 3 *.F ! L 58f3 ! c 2 58f6 3 *.f ! L 58f6 ! c 2 58f9 5 *.for ! L 58f9 ! c 2 58fc 5 *.fpp ! L 58fc ! c 2 1f051 a extensions ! c 2 1f050 7 Fortran ! c 2 1f04f 4 name ! c 2 1ef59 7 Fortran ! c 1 5911 ! c 0 1f094 4 ! c 2 1f09b 2 e3 ! c 2 1f09a a defaultExe ! c 3 1f09d 1 ! c 2 591e 2 e3 ! L 591e ! c 2 1f09c b executables ! c 3 1f098 2 ! c 2 5925 3 *.H ! L 5925 ! c 2 5928 3 *.h ! L 5928 ! c 2 1f097 a extensions ! c 2 1f096 6 Header ! c 2 1f095 4 name ! c 2 1ef5a 6 Header ! c 1 593d ! c 0 1f0d2 4 ! c 2 1f0d9 9 surfboard ! c 2 1f0d8 a defaultExe ! c 3 1f0db 2 ! c 2 594a 2 e3 ! L 594a ! c 2 594d 9 surfboard ! L 594d ! c 2 1f0da b executables ! c 3 1f0d6 2 ! c 2 5954 5 *.htm ! L 5954 ! c 2 5957 6 *.html ! L 5957 ! c 2 1f0d5 a extensions ! c 2 1f0d4 4 Html ! c 2 1f0d3 4 name ! c 2 1ef5b 4 Html ! c 1 596c ! c 0 1f114 4 ! c 2 1f11b 2 e3 ! c 2 1f11a a defaultExe ! c 3 1f11d 1 ! c 2 5979 2 e3 ! L 5979 ! c 2 1f11c b executables ! c 3 1f118 1 ! c 2 5980 6 *.java ! L 5980 ! c 2 1f117 a extensions ! c 2 1f116 4 Java ! c 2 1f115 4 name ! c 2 1ef5c 4 Java ! c 1 5995 ! c 0 1f14e 4 ! c 2 1f155 2 e3 ! c 2 1f154 a defaultExe ! c 3 1f157 1 ! c 2 59a2 2 e3 ! L 59a2 ! c 2 1f156 b executables ! c 3 1f152 1 ! c 2 59a9 5 *.tex ! L 59a9 ! c 2 1f151 a extensions ! c 2 1f150 5 Latex ! c 2 1f14f 4 name ! c 2 1ef5d 5 Latex ! c 1 59be ! c 0 1f188 4 ! c 2 1f18f 2 e3 ! c 2 1f18e a defaultExe ! c 3 1f191 1 ! c 2 59cb 2 e3 ! L 59cb ! c 2 1f190 b executables ! c 3 1f18c 0 ! c 2 1f18b a extensions ! c 2 1f18a 5 Other ! c 2 1f189 4 name ! c 2 1ef5e 5 Other ! c 2 1ef53 a categories ! c 0 1ef60 1 ! C ProjectDir 4 59e8 ! c 2 59e9 25 netscript2/src/perl/NetScript/Engine/ 11 81 ! c 2 59ea 0 0 ! c 2 1ef62 25 netscript2/src/perl/NetScript/Engine/ ! c 2 1ef5f b directories ! C DmBag 5 1ec00 10 ! c 2 1ec36 e1 b ! C DmDictionary 0 1ec02 3 ! C DmString 1 1ec14 36 b ! C DmSet 0 5a36 1 ! C DmString 1 5a64 5 Other ! L 5a64 ! c 1 1ec13 a categories ! c 1 1ec04 11 BasicStatement.pm ! c 1 1ec03 4 name ! C DmInteger 2 1ec16 1 ! c 1 1ec15 9 substMode ! c 2 1ec6b e8 b ! C DmDictionary 0 1ec37 3 ! C DmString 1 1ec49 36 b ! C DmSet 0 5a75 1 ! C DmString 1 5aa3 5 Other ! L 5aa3 ! c 1 1ec48 a categories ! c 1 1ec39 11 BlockStatement.pm ! c 1 1ec38 4 name ! C DmInteger 2 1ec4b 80000001 ! c 1 1ec4a 9 substMode ! c 2 1eca0 d7 b ! C DmDictionary 0 1ec6c 3 ! C DmString 1 1ec7e 36 b ! C DmSet 0 5ab4 1 ! C DmString 1 5ae2 5 Other ! L 5ae2 ! c 1 1ec7d a categories ! c 1 1ec6e 8 Class.pm ! c 1 1ec6d 4 name ! C DmInteger 2 1ec80 1 ! c 1 1ec7f 9 substMode ! c 2 1ecd5 e1 b ! C DmDictionary 0 1eca1 3 ! C DmString 1 1ecb3 39 b ! C DmSet 0 1d3dc 1 ! C DmString 1 1d556 5 Other ! L 1d556 ! c 1 1ecb2 a categories ! c 1 1eca3 f ClassWrapper.pm ! c 1 1eca2 4 name ! C DmInteger 2 1ecb5 1 ! c 1 1ecb4 9 substMode ! c 2 1ed0a e7 b ! C DmDictionary 0 1ecd6 3 ! C DmString 1 1ece8 36 b ! C DmSet 0 5af3 1 ! C DmString 1 5b21 5 Other ! L 5b21 ! c 1 1ece7 a categories ! c 1 1ecd8 10 CopyStatement.pm ! c 1 1ecd7 4 name ! C DmInteger 2 1ecea 80000001 ! c 1 1ece9 9 substMode ! c 2 1ed3f db b ! C DmDictionary 0 1ed0b 3 ! C DmString 1 1ed1d 36 b ! C DmSet 0 5b32 1 ! C DmString 1 5b60 5 Other ! L 5b60 ! c 1 1ed1c a categories ! c 1 1ed0d c DOMWalker.pm ! c 1 1ed0c 4 name ! C DmInteger 2 1ed1f 1 ! c 1 1ed1e 9 substMode ! c 2 1ed74 d7 b ! C DmDictionary 0 1ed40 3 ! C DmString 1 1ed52 36 b ! C DmSet 0 5b71 1 ! C DmString 1 5b9f 5 Other ! L 5b9f ! c 1 1ed51 a categories ! c 1 1ed42 8 Event.pm ! c 1 1ed41 4 name ! C DmInteger 2 1ed54 1 ! c 1 1ed53 9 substMode ! c 2 1eda9 e0 b ! C DmDictionary 0 1ed75 3 ! C DmString 1 1ed87 36 b ! C DmSet 0 5bb0 1 ! C DmString 1 5bde 5 Other ! L 5bde ! c 1 1ed86 a categories ! c 1 1ed77 10 EventListener.pm ! c 1 1ed76 4 name ! C DmInteger 2 1ed89 1 ! c 1 1ed88 9 substMode ! c 2 1edde dc b ! C DmDictionary 0 1edaa 3 ! C DmString 1 1edbc 36 b ! C DmSet 0 5bef 1 ! C DmString 1 5c1d 5 Other ! L 5c1d ! c 1 1edbb a categories ! c 1 1edac d EventRelay.pm ! c 1 1edab 4 name ! C DmInteger 2 1edbe 1 ! c 1 1edbd 9 substMode ! c 2 1ee13 da b ! C DmDictionary 0 1eddf 3 ! C DmString 1 1edf1 36 b ! C DmSet 0 5c2e 1 ! C DmString 1 5c5c 5 Other ! L 5c5c ! c 1 1edf0 a categories ! c 1 1ede1 b Function.pm ! c 1 1ede0 4 name ! C DmInteger 2 1edf3 1 ! c 1 1edf2 9 substMode ! c 2 1ee48 e5 b ! C DmDictionary 0 1ee14 3 ! C DmString 1 1ee26 39 b ! C DmSet 0 1df09 1 ! C DmString 1 1e083 5 Other ! L 1e083 ! c 1 1ee25 a categories ! c 1 1ee16 12 FunctionWrapper.pm ! c 1 1ee15 4 name ! C DmInteger 2 1ee28 1 ! c 1 1ee27 9 substMode ! c 2 1ee7d d8 b ! C DmDictionary 0 1ee49 3 ! C DmString 1 1ee5b 36 b ! C DmSet 0 5c6d 1 ! C DmString 1 5c9b 5 Other ! L 5c9b ! c 1 1ee5a a categories ! c 1 1ee4b 9 Member.pm ! c 1 1ee4a 4 name ! C DmInteger 2 1ee5d 1 ! c 1 1ee5c 9 substMode ! c 2 1eeb2 e3 b ! C DmDictionary 0 1ee7e 3 ! C DmString 1 1ee90 39 b ! C DmSet 0 1ea6f 1 ! C DmString 1 1ebe9 5 Other ! L 1ebe9 ! c 1 1ee8f a categories ! c 1 1ee80 10 MemberWrapper.pm ! c 1 1ee7f 4 name ! C DmInteger 2 1ee92 1 ! c 1 1ee91 9 substMode ! c 2 1eee7 d7 b ! C DmDictionary 0 1eeb3 3 ! C DmString 1 1eec5 36 b ! C DmSet 0 5cac 1 ! C DmString 1 5cda 5 Other ! L 5cda ! c 1 1eec4 a categories ! c 1 1eeb5 8 State.pm ! c 1 1eeb4 4 name ! C DmInteger 2 1eec7 1 ! c 1 1eec6 9 substMode ! c 2 1ef1c db b ! C DmDictionary 0 1eee8 3 ! C DmString 1 1eefa 36 b ! C DmSet 0 5ceb 1 ! C DmString 1 5d19 5 Other ! L 5d19 ! c 1 1eef9 a categories ! c 1 1eeea c Statement.pm ! c 1 1eee9 4 name ! C DmInteger 2 1eefc 1 ! c 1 1eefb 9 substMode ! c 2 1ef51 e5 b ! C DmDictionary 0 1ef1d 3 ! C DmString 1 1ef2f 36 b ! C DmSet 0 5d2a 1 ! C DmString 1 5d58 5 Other ! L 5d58 ! c 1 1ef2e a categories ! c 1 1ef1f 15 StatementEvaluator.pm ! c 1 1ef1e 4 name ! C DmInteger 2 1ef31 1 ! c 1 1ef30 9 substMode ! c 2 1ef52 5 files ! c 2 1ebfc 94 xterm -ls -fn -*-lucidatypewriter-medium-r-normal-*-12-* -bg gray90 -T Program -geometry 80x10+0+0 -e "[set command with 'Project->Launch Command']" ! c 2 1ebfb 6 launch ! c 2 1ebf8 4 make ! c 2 1ebf7 4 make ! c 2 1ebfa 0 ! c 2 1ebf9 8 makeFile ! c 5 1ebfd 0 ! c 2 1ebff 7 modules ! c 2 1ebf6 6 Engine ! c 2 1ebf5 4 name |