OUblié de dire qu'il faut aussi corriger le test testFisherCh214
(mettre les virgules côté réponses)
testFisherCh214
self assert: (String streamContents: [:str | (Chapter2 new outputStream: str) evalString: 'parse([#b,#b,#a,#a,#b,#a,#b])']) = '0 [#b,#b,#a,#a,#b,#a,#b] 0 [#b,#a,#a,#b,#a,#b] 0 [#a,#a,#b,#a,#b] 1 [#a,#b,#a,#b] 1 [#b,#a,#b] 2 [#a,#b] 2 [#b] 2 [] '.
self assert: (String streamContents: [:str | (Chapter2 new outputStream: str) evalString: 'parse([#b,#b,#a])']) = '0 [#b,#b,#a] 0 [#b,#a] 0 [#a] '
-------- Message d'origine-------- De: squeak-fr-bounces@lists.squeakfoundation.org de la part de Dreyfuss Pierre-André (EDUM) Date: dim. 06/07/2008 03:32 À: Squeak in french / Squeak en français Objet : : [Squeak-fr] [ANN] Nouvelle version de Prolog
Salut Stef
Je n'ai pas tout testé mais cela semble marcher. Il y a une petite correction à faire pour obtenir l'affichage des liste avec des virgules (comme à la lecture)
Mettre une ',' après le $ dans printOne: ligne: aStream nextPut: $, .
printOne: aStream car printOn: aStream. aStream nextPut: $, . (cdr isConsCell) ifTrue: [cdr printOne: aStream] ifFalse: [cdr ifNil: [^ self]. aStream nextPutAll: '| '. cdr printOn: aStream]
Avec cette correction J'obtient avec la grammaire des listes affichées correctement:
Grammar2 ?- ph(s,p,[]). (ph(sujet(gn(det('le', 'm'), n('chat', 'm')), 3), v('mange', 3)) ['le','chat','mange']) (ph(sujet(gn(det('la', 'f'), n('souris', 'f')), 3), v('mange', 3)) ['la','souris','mange']) (ph(sujet(gn(det('un', 'm'), n('chat', 'm')), 3), v('mange', 3)) ['un','chat','mange']) (ph(sujet(gn(det('une', 'f'), n('souris', 'f')), 3), v('mange', 3)) ['une','souris','mange']) (ph(sujet('je', 1), v('mange', 1)) ['je','mange']) (ph(sujet('tu', 2), v('manges', 2)) ['tu','manges'])
Test pour les listes:
testPrologList "PAD 2008/07/06 test list behaviours" { 'eq(l,[1,2,3]),eq(l,[h|t]).' -> 'an Array(an Array([1,2,3] 1 [2,3]))'. 'eq([1,2,3],[h|t]).' -> 'an Array(an Array(1 [2,3]))'. 'eq([1,2,3,4],[1,2|q])' -> 'an Array(an Array([3,4]))'. 'eq([1,2,3,4],[1,h|q])' -> 'an Array(an Array(2 [3,4]))'.
} do: [:assoc | self assert: ((Prolog evaluate: assoc key)asString) = assoc value asString]
Pad
_______________________________________________ Squeak-fr mailing list Squeak-fr@lists.squeakfoundation.org http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr