--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/relaxng/trunk/RNG__ZeroOrMoreNode.st Tue Apr 08 19:47:42 2008 +0000
@@ -0,0 +1,116 @@
+"{ Package: 'stx:goodies/xmlsuite/relaxng' }"
+
+"{ NameSpace: RNG }"
+
+ContentModelNode subclass:#ZeroOrMoreNode
+ instanceVariableNames:''
+ classVariableNames:''
+ poolDictionaries:''
+ category:'Relax NG-Content model'
+!
+
+
+!ZeroOrMoreNode methodsFor:'automaton support'!
+
+generateTransitionsIn:aContentModelAutomaton
+
+ super generateTransitionsIn:aContentModelAutomaton.
+
+ aContentModelAutomaton
+ makeTransitionsFrom:self lastChild patternsThatCanBeLast
+ to:self patternsThatCanBeFirst.
+
+ self children do:[:child|
+ aContentModelAutomaton
+ makeTransitionsFrom:child patternsThatCanBeLast
+ to:child patternsThatCanBeNext
+ ]
+
+ "Created: / 30-04-2005 / 21:17:48 / janfrog"
+ "Modified: / 02-05-2005 / 11:53:14 / janfrog"
+!
+
+patternsThatCanBeFirst
+ "Superclass says that I am responsible to implement this method"
+
+ ^self firstChild patternsThatCanBeFirst
+ addAll:self next patternsThatCanBeFirst;
+ yourself
+
+ "Created: / 30-04-2005 / 21:04:04 / janfrog"
+ "Modified: / 13-05-2005 / 10:54:38 / masca"
+!
+
+patternsThatCanBeLast
+ "Superclass says that I am responsible to implement this method"
+
+ ^self lastChild patternsThatCanBeLast
+ addAll:(self prev patternsThatCanBeLast);
+ yourself
+
+ "Created: / 30-04-2005 / 21:04:04 / janfrog"
+ "Modified: / 02-05-2005 / 11:52:02 / janfrog"
+! !
+
+!ZeroOrMoreNode methodsFor:'checking'!
+
+checkContents
+
+ (self parent isPatternNode and:[self parent isPatternNodeForList])
+ ifTrue:[
+ self children allSatisfy:[:child|
+ (child isRefNode not and:
+ [child isPatternNode and:[child isPatternNodeForPCData]])
+ ifFalse:[
+ self invalidContentError:'Can contain only <data> or <text> patterns'.
+ ]
+ ]
+ ]
+
+ "Created: / 14-05-2005 / 20:53:49 / janfrog"
+ "Modified: / 16-05-2005 / 13:46:54 / masca"
+! !
+
+!ZeroOrMoreNode methodsFor:'printing'!
+
+groupModifierCharacter
+ "Superclass says that I am responsible to implement this method"
+
+ ^$*
+
+ "Created: / 30-04-2005 / 18:59:12 / janfrog"
+! !
+
+!ZeroOrMoreNode methodsFor:'testing'!
+
+isRepeatingNode
+
+ ^true
+
+ "Created: / 14-05-2005 / 21:30:14 / janfrog"
+!
+
+isZeroOrMoreNode
+ ^ true
+
+ "Created: / 14-05-2005 / 20:47:45 / janfrog"
+! !
+
+!ZeroOrMoreNode methodsFor:'visiting'!
+
+acceptVisitor:aVisitor
+ "Double dispatch back to the visitor, passing my type encoded in
+ the selector (visitor pattern)"
+
+ "stub code automatically generated - please change if required"
+
+ ^ aVisitor visitZeroOrMoreNode:self
+
+ "Created: / 02-05-2005 / 16:38:45 / janfrog"
+! !
+
+!ZeroOrMoreNode class methodsFor:'documentation'!
+
+version
+ ^ '$Header: /opt/data/cvs/stx/goodies/xmlsuite/relaxng/RNG__ZeroOrMoreNode.st,v 1.1.1.1 2005-11-01 22:07:17 vranyj1 Exp $'
+! !