Personal tools
Document Actions

odra.19 traitement des regles superq

by Paul McJones last modified 2019-05-20 16:52

"Treatment of SuperQ rules" -- could this be a Prolog version of Colmerauer's Q-systems?

** TRAITEMENT DES REGLES SUPERQ.
+$REGLE(*VAR,%,.(+(*E),*V)) -/
     -$NTERMINAL(*VAR,*C,.(*U,*Y)) -$NERS14(*U) -$CONTROLE(*C,*D,*C1,*VAR)
     -UNIV(*E,.(.(%,*U),.(*X,.(*D,*Y)))) -$GAUCHE(*C1,*X,*D,*V,*VAR).
+$REGLE(*VAR,',*V) -/ -$ERF(15).
+$REGLE(*VAR,=,*V) -/ -$ERF(16).
+$REGLE(*VAR,*C,*V) -$ERF(13).
+$GAUCHE(',*X,*CTRL,.(-($ADDIT(*E,*X,*CTR)),*V),*VAR)  -/
     -$BONTERME(*VAR,*C,*E)
     -$CONTROLE(*C,*D,*C1,*VAR) -$CHOIX(*CTRL,*D,*CTR)
     -$GAUCHE(*C1,*X,*CTRL,*V,*VAR).
+$GAUCHE(=,*X,*CTRL,*V,*VAR) -/
     -LUB(*C0) -$NERS17(*C0) -LUB(*C1) -$DROITE(*C1,*X,*CTRL,*V,*VAR).
+$GAUCHE(%,*X,*CTRL,*V,*VAR) -/ -$ERF(18).
+$GAUCHE(*C,*X,*CTRL,*V,*VAR) -$SIGNE(*C,*E,*F) -/ -$ERF(23).
+$GAUCHE(*C,*X,*CTRL,*V,*VAR) -$ERF(20).
+$DROITE(%,*X,*CTRL,*V,*VAR) -/ -$NTERMINAL(*VAR,*C,*E)
     -$CONTROLE(*C,*D,*C1,*VAR) -$CHOIX(*CTRL,*D,*CTR) -$TFP(*E,*X,*CTR,*V1,*V)
     -$DROITE(*C1,*X,*CTRL,*V1,*VAR).
+$DROITE(',*X,*CTRL, (-($PORTE(*E,*X,*CTR)),*V),*VAR) -/
     -$BONTERME(*VAR,*C,*E)
     -$CONTROLE(*C,*D,*C1,*VAR) -$CHOIX(*CTRL,*D,*CTR)
     -$DROITE(*C1,*X,*CTRL,*V,*VAR).
+$DROITE(.,*X,*CTRL,NIL,.(.,*VAR)) -/.
+$DROITE(*C,*X,*CTRL,.(*F,*V),*VAR) -$SIGNE(*C,*E,*F) -/
     -$BONTERME(*VAR,*C1,*E)  -$DROITE(*C1,*X,*CTRL,*V,*VAR).
+$DROITE(!,*X,*CTRL,*V,*VAR)  -/  -$ERF(21).
+$DROITE(*C,*X,*CTRL,*V,*VAR) -$ERF(20).
+$CONTROLE(,,*D,*C1,*VAR) -/ -$BONTERME(*VAR,*C1,*D).
+$CONTROLE(*C,*D,*C,*VAR).
+$CHOIX(*CTRL,*D,*CTRL) -VAR(*D) -/.
+$CHOIX(*CTRL,*D,*D).
+$TEP(.("NT",.(*U,*Y)),*X,*CTR,*V,
     .(-(UNIV(*E,.(.(%,*U),.(*X,.(*CTR,*Y))))),.(-(*E),*V))) -/.
+$TEP(.(*U,*Y),*X,*CTR,*V,.(-(*E),*V))
     -UNIV(*E,.(.(%,*U),.(*X,.(*CTR,*Y)))).
+SYNTAXE(*X,*Y) -SYNTAXE(*X,*Y,*Z).
+SYNTAXE(.(*TETE,*RESTE),*CHAINE*DONNEES)
     -$MAXCHAINE(*MAX) -$PRELUDE(*CHAINE,*DONNEES,1,*MAX)
     -UNIV(*TETE,.(*TNOM,*TARGS))
     -UNIV(*APPEL,.(.(%,*TNOM),.(.(*NOMBRES,*DONNEES),.(*CTRL,*TARGS))))
     -*APPEL -$SEPARER(*DONNEES,*TROUVE,*PASTROUVE)
     -$ACCORDCHAINE(*TROUVE,*CHAINE) -$ACCORDRESTE(*PASTROUVE,*RESTE) .
+$MAXCHAINE(16).     *UTILISE PENDANT LA SYNTHESE.
+$PRELUDE(.(*T,*CH),.(=(*T,^(*N,*NO)),*D),*N,*MAX)
     +INF(*MAX,*N) -/  -PLUS(*N,1,*N1)
     -$PRELUDE(*CH,*D,*N1,*MAX).
+$PRELUDE(NIL,*V,*N,*MAX) -/.
+$PRELUDE(*CH,*D,*N,*MAX)
     -SORM("ERREUR DANS SYNTAXE - LA CHAINE MAL FORMEE:") -LIGNE
     -ANCETRE(-(SYNTAXE(*AXIOME,*CHAINE,*DONNEES)))
     -SORT(*CHAINE) -LIGNE -IMPASSE.
+$SEPARER(*V,NIL,NIL) -VAR(*V) -/.
+$SEPARER(.(=(*T,^(*N,*NO)),*D),*TR,.(*T,*PASTR))
     -VAR(*NO) -/ -$SEPARER(*D,*TR,*PASTR) .
+$SEPARER(.(=(*T,*NNO),*D),.(*T,*TR),*PASTR)
     -$SEPARER(*D,*TR,*PASTR) .
+$ACCORDCHAINE(*TROUVE,*CHAINE) +VAR(*CHAINE) -/.
+$ACCORDCHAINE(*TROUVE,*TROUVE).
+$ACCORDRESTE(*PASTROUVE,*PASTROUVE).
+$PORTE(*TERMINAL,.(*NOMBRES,*DONNEES),*CONTROLE)
     -$COMPTE(*NOMBRES,*N,*NO)
     -$CHERCHER(*CONTROLE,*TERMINAL,*DONNEES,*NO,*N).
+$COMPTE(.(*A,*NOMBRES),*N,*NO)
     +VAR(*A) -/ -$COMPTE(*NOMBRES,*N,*NO1)
     -PLUS(*NO1,1,*NO).
+$COMPTE(.(*N,*VAR),*N,1).
+$ADDIT(*TE,.(*ND,*DO),*CONTROLE)   +VAR(*DO) -/ -$ADDI(*TE,*DO).
+$ADDIT(*TE,.(*NO,.(=(*TE,^(1,*X)),*DO)),*CONTROLE).
+$ADDI(*TERMINAL,.(=(*T,^(*N,*X)),*V))
     -VAR(*V) -/ -PLUS(*N,1,*N1)  -$ADDIUNIF(*V,*TERMINAL,*N1).
+$ADDI(*TERMINAL,.(*TNX,*V)) -$ADDI(*TERMINAL,*V).
+$ADDIUNIF(.(=(*T,^(*N,*X)),*V),*T,*N).
+$CHERCHER(*CONTROLE,*TERMINAL,*DONNEES,*NO,*N)
     +VAR(*DONNEES) -$TROUVER(*TERMINAL,*DONNEES,*NO,*N).
+$TROUVER(*T,.(=(*T,^(*N,*NO)),*RESTE),*NO,*N) -/.
+$TROUVER(*T,.(*TNX,*RESTE),*NO,*N)
     +VAR(*RESTE) -$TROUVER(*T,*RESTE,*NO,*N).
+$NTERMINAL(*VAR,*C2,.(*U,*Y)) -/ -LUB(*C0) -$LIRE(*C0,*U,*C1)
     -$NER22(*U) -$LISTP(*VAR,*C1,*C2,*Y).
+$BONTERME(*VAR,*C2,*E) -LUB(*C0) -$LIRE(*C0,*U,*C1)
     -$PRED(*VAR,*U,*C1,*C2,*E).
+$SIGNE(+,*E,+(*E)) -/.   +$SIGNE(-,*E,-(*E)).
+$NERS14("NT") -/ -$ERF(14).
+$NERS14(*U).
+$NERS17(=) -/.
+$NERS17(*C) -$ERF(17).
+$NER22($STAR)-/-$ERF(22).
+$NER22(*C).
** $SPRED COMMENCE SUR UN CAR NON BLANC
          FINIT SUR UN CAR(POINT OU !)
*C****.
+$SPRED(*VAR,+,.(+(*X),*Y)) -/ -LUB(*C)-$LIRE(*C,*U1,*C1)
     -$PRED(*VAR,*U1,*C1,*C2,*X)-$SPRED(*VAR,*C2,*Y).
+$SPRED(*VAR,-,.(-(*X),*Y)) -/ -LUB(*C)-$LIRE(*C,*U1,*C1)
     -$PRED(*VAR,*U1,*C1,*C2,*X)-$SPRED(*VAR,*C2,*Y).
+$SPRED(.(.,*VAR1),.,NIL)-/.
+$SPRED(.(!,*VAR),!,NIL)-/.
+$SPRED(*VAR,*C,NIL)-$ERF(3).
**$PRED COMMENCE SUR UNE UNITE+CAR
        FINIT SUR UN CAR EN AVANT
***.
+$PRED(.(*PONC,*VAR),.($STAR,NIL),*C,*C1,*X) -/ -$LIRE(*C,*U1,*C1)
     -$NER4(*U1)                     -&VAR(.(*U1,*X),*VAR).
+$PRED(*VAR,*U,*C,*C1,*X)-$LISTP(*VAR,*C,*C1,*Y)
             -UNIV(*X,.(*U,*Y)).

****

« December 2024 »
Su Mo Tu We Th Fr Sa
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
 

Powered by Plone CMS, the Open Source Content Management System

This site conforms to the following standards: