IF DEBUG,X100,,X100 NMPROC: VAL " X" < NOM DU PROCESSEUR. X100: VAL 0 IF DEBUG,,X100, NMPROC: VAL " D" < NOM DU PROCESSEUR. X100: VAL 0 IDP "SYNTAX - RELEASE 01/06/1979" IDP "JOHN F. COLONNA" EOT #SIP DEF PROCESSEUR# PROG WORD SYNTAX < ADRESSE DE LANCEMENT. WORD 0 < POUR FAIRE $=$+1. PSYNT: EQU $ < A NOTER : P='12 !!!! LRP L BR -2,L < ENTREE DANS LE PROCESSEUR. EOT #SIP DEFINITION ITEM# PAGE < < < C O N S T A N T E S D U D I C T I O N N A I R E : < < NCATG: VAL 32 < NBRE DE CATEGORIES GRAMMATICALES. LMOT: VAL 40 < NBRE DE CARACTERES MAX D'UN MOT. NCATG4: VAL NCATG+3/4 < NBRE D'OCTETS NECESSAIRES < AUX CATEGORIES GRAMMATICALES. NSEM: VAL 4 < NBRE D'OCTETS DE VALEUR < SEMANTIQUE DU MOT. < < < C O N S T A N T E S L E X I C O G R A P H I Q U E S : < < LPHR: VAL 112 < NBRE DE CARACTERES MAX < D'1NE PHRASE. < (=LBUFESC DANS DCTESC...) < < < F O R M A T D ' U N D E S C R I P T E U R < D E M O T : < < DESCI: VAL 0 < INDEX DU 1ER CARACTERE DU MOT < DESCI=-1 EN FIN DE PHRASE. DESCL: VAL 1 < LONGUEUR EN OCTETS DU MOT. < CONTIENT LE NBRE DE MOTS < RECONNUS EN FIN DE PHRASE. DESCD: VAL 2 < NOM DU DICTIONNAIRE D'APPAR- < TENANCE : < 0 : LE MOT EST INCONNU , < ' ' : MOT USUEL CONNU , < <K1><K2> : MOT NON USUEL CONNU. DESCS: VAL 3 < SEPARATEUR PRECEDENT LE MOT < COURANT , CODE A L'AIDE D'UN < 'SEPX' DANS L'OCTET1 ; L'OCTET0 < CONTIENT EVENTUELLEMENT UN < INDICATEUR DE DEBUT DE GROUPE. DESCF: VAL 4 < CATEGORIE GRAMMATICALE DU MOT < DANS SON CONTEXTE DANS < L'OCTET1 , ET DANS L'OCTET0 , < LE NIVEAU DE RECURSIVITE DU < MOT COURANT. DESCV: VAL 5 < VALEUR SEMANTIQUE DU MOT. DESCC: VAL NSEM+1/2+DESCV < CATEGORIES GRAMMATICALES DU MOT. LDESC: VAL NCATG4+3/4+DESCC < NBRE DE MOTS MACHINE NECESSAI- < RES POUR MEMORISER LE DESCRIP- < TEUR D'UN MOT FRANCAIS. < < < C A T E G O R I E S L E X I C A L E S : < < SEP1: VAL 4 < SEPARATEUR DU TYPE 'SPACE'. SEP2: VAL 3 < SEPARATEURS DU TYPE ',',';',.... SEP3: VAL 2 < SEPARATEUR DU TYPE APOSTROPHE. SEP4: VAL 1 < SEPARATEUR DU TYPE PARENTHESE. FINF: VAL 0 < SEPARATEUR DE FIN DE PHRASE , < SOIT 'EOT' OU R/C. CAR: VAL 8 < LIMITE ENTRE LES CARACTERES A < VALEUR DE LETTRES ET LES < SEPARATEURS. LETR: VAL 8 < CARACTERES DE 'A' A 'Z'. CHIF: VAL 9 < CARACTERES DE '0' A '9'. CARS: VAL 'A < CARACTERES SPECIAUX : '-','+','*',... IGNOR: VAL 'B < CARACTERES DE CODE NON < RECONNUS. PAGE < < < F O R M A T D E L A G R A M M A I R E : < < TYPE: VAL 0 < OCTET0=<TYPE> , < OCTET1=<ARGUMENT1>. ARG2: VAL 1 < <ARGUMENT2>. SUCCES: VAL 2 < EMPLACEMENT DU 1ER SUCCESSEUR < DU NOEUD COURANT. < LA FIN DE LISTE DE SUCCESSEURS < EST INDIQUEE PAR UN MOT NUL. < < < < T Y P E S > R E C O N N U S : < < TACT: VAL 0 < NOEUD D'ACTION NON TERMINALE ; < <ARGUMENT1> EST TRANSMIS PAR < LE REGISTRE A A LA ROUTINE < D'ADRESSE <ARGUMENT2>. TACTER: VAL 1 < NOEUD D'ACTION TERMINALE ; MEMES < CONVENTIONS QU'AVEC 'TACT'. TVID: VAL 2 < NOEUD VIDE (MAIS NON TERMINAL). TERM: VAL 3 < NOEUD TERMINAL ; <ARGUMENT2> < CONTIENT LA CATEGORIE GRAMMA- < TICALE RECHERCHEE POUR LE MOT < COURANT DE LA PHRASE. TNT: VAL 4 < NON-TERMINAL SYNTAXIQUE , AVEC < ACTION EVENTUELLE SUR L'AVANT < DERNIER DESCF. TMOT: VAL 5 < NOEUD TERMINAL DE TEST DE < PRESENCE D'UN MOT DONNE DONT < <ARGUMENT1> EST LA LONGUEUR , < ET <ARGUMENT2> UN RELAI INDEXE < VERS LUI. < DE PLUS <ARGUMENT1> PEUT CONTE- < NIR DANS LES BITS 8-11 UN < INDICATEUR DISCRIMINANAT LES < PRONOMS RELATIFS QUI/QUE/... TFIN: VAL 6 < NOEUD VIDE TERMINAL (C'EST < UN NOEUD DE FIN DE SUCCESSION < LINEAIRE). TFPH: VAL 7 < TEST DE FIN DE PHRASE. TNFPH: VAL 8 < TEST DE NON-FIN DE PHRASE. TSEP: VAL 9 < TEST DE SEPARATEUR. < <ARGUMENT2> CONTIENT LA < LE SEPARATEUR RECHERCHE SOUS < FORME DE SEPX. TNSEP: VAL 10 < TEST DE NON-SEPARATEUR. < <ARGUMENT2> CONTIENT LA < LE SEPARATEUR RECHERCHE SOUS < FORME DE SEPX. TNTC: VAL 11 < NON-TERMINAL SYNTAXIQUE AVEC < ACTION EVENTUELLE SUR LE < DESCF COURANT. < < < FORMAT : < LA GRAMMAIRE DU FRANCAIS EST DECRITE < A 6HAIDE D'UN CERTAINS NBRE DE NOEUDS < SYNTAXIQUES DONT LES TYPES SONT < DEFINIS CI-DESSUS. < LES <SUCCESSEURS> REPRESENTENT LES < ALTERNATIVES POSSIBLES POUVANT SUIVRE < UN NOEUD COURANT. < ON PARCOURS LA GRAMMAIRE DANS LE SENS < 'CROISSANT' JUSQU'A RENCONTRER < SOIT UN NOEUD TERMINAL , SOIT UNE CONDITION < NON REMPLIE (ET CONTENUE DANS LE < REGISTRE B . LORS DES RETOURS ARRIERE < EN ERREUR , ON ESSAYE TOUS LES SUCCESSEURS < NON ENCORE TENTES . LA FIN DE LISTE DE < SUCCESSEURS EST UN CAS D'ERREUR. < < < C A T E G O R I E S G R A M M A T I C A L E S : < < NOM: VAL 1 < NOM. VERBE: VAL 2 < VERBE. ADJECT: VAL 3 < ADJECTIF. ADVERB: VAL 4 < ADVERBE. PROPER: VAL 5 < PRONOM PERSONNEL. PRODEM: VAL 6 < PRONOM DEMONSTRATIF. INTERJ: VAL 7 < INTERJECTION,'OUI','NON'. PREPOS: VAL 8 < PREPOSITION. CONJ: VAL 9 < CONJONCTION. ARTICL: VAL 10 < ARTICLE. PROREL: VAL 11 < PRONOM RELATIF. < < < G R O U P E S S Y N T A G M A T I Q U E S : < < PHRASE: VAL NCATG+1 < PHRASE. TGV: VAL NCATG+2 < GROUPE VERBAL. TGN: VAL NCATG+3 < GROUPE NOMINAL. TREL: VAL NCATG+4 < PROPOSITION RELATIVE. TINT: VAL NCATG+5 < INTERJECTION. TCONJ: VAL NCATG+6 < CONJONCTION DE COORDINATION. < < < D I S C R I M I N A N T S : < < TQUI: VAL '80 < DISCRIMINANT DE 'QUI'. TQUE: VAL '90 < DISCRIMINANT DE 'QUE'. < < < R E C U R S I V I T E D U D I S C O U R S : < < BOR: VAL 'FF < 'BEGIN RECURISIVITE' ; ELLE < SE FAIT EN GENERAL SUR LES < 'QUE' , 'QUI' ,.... EOR: VAL 1 < 'END RECURSIVITE' ; ELLE SE < FAIT SUR LES FINS D'AXIOMES 2 < ET LES FINS D'AXIOMES 3. FRONT: VAL '80 < FRONTIERE DE PROPOSITION A < NIVEAU DE RECURSIVITE CONSTANT. < < D E S C R I P T E U R < D E P R O P O S I T I O N R E L A T I V E : < < FORMAT : < CHAQUE ENTREE EST BOUBLE-MOT : < -MOT0=@@1ER DESCRIPTEUR-MOT DE CETTE PARTIE < DE PROPOSITION , < -OCTET2=INDICATEUR DE DEBUT DE GROUPE , < -OCTET3=NBRE DE MOTS CONTENUS DANS LE GROUPE , < DISCRIMINANT DE QUI/QUE/.... < < FORMAT GLOBAL : < <RELAI-DESCRIPTEUR-PROPOSITION> , < <SUJET>(<OPERATEUR>/'0(<OBJET>/'0))(<PRO.REL>/'0) , < '0000. < ALPHA: VAL 0 < 1ERE PARTIE DE LA PROPOSITION. QUIQUE: VAL 2 < PRONOM RELATIF DE LA PROPOSITION. GVREL: VAL 4 < GROUPE VERBAL DE LA PROPOSITION. BETA: VAL 6 < DERNIERE PARTIE DE LA PROPOSITION. LREL: VAL 10 < LONGUEU D'UN DESCRIPTEUR DE < PROPOSITION RELATIVE ; ON < TROUVE DANS LE MOT0 , UN RELAI < VERS LE DESCRIPTEUR REEL DE < LA PROPOSITION , DANS LES 8 < MOTS SUIVANTS , CE QUI EST DECRIT < CI-DESSUS , ET DANS LE DERNIER < MOT UN CODE D'ARRET ('0). SUJET: VAL 0 < <SUJET> , OPERA: VAL 2 < <OPERATEUR> , OBJET: VAL 4 < <OBJET>. PAGE < < < M E M O I R E L I B R E : < < FREE: VAL '1000 < ADRESSE DU 1ER MOT LIBRE < DES 2 DERNIERS K DE LA MEMOIRE. < < < L O C A L : < < LOCAL LOC: EQU $ < < M E S S A G E S : < IF DEBUG,,X100, MERR: BYTE 7;'6D ASCI "ERREUR" MCOR: BYTE 8;'6D ASCI "CORRECT " MNPRO: BYTE 15;'6D ASCI "0 PROPOSITIONS" MPRO: BYTE 5;'6D BYTE '80;"*" ASCI " " MRCLF: BYTE 1;'6D MSP: BYTE 1;" " MREC: BYTE 5;'6D ASCI "<R> " MMOT: BYTE 5;'6D BYTE '81;">" ASCI " " MSEM: BYTE 3;" ";"/";" " MNOM: BYTE 4;"=" ASCI "NOM " MVERB: BYTE 6;"=" ASCI "VERBE " MADJ: BYTE 9;"=" ASCI "ADJECTIF" MADV: BYTE 8;"=" ASCI "ADVERBE " MPP: BYTE 8;"=" ASCI "PRO.PER " MPD: BYTE 8;"=" ASCI "PRO.DEM " MINJ: BYTE 7;"=" ASCI "INTERJ" MPREP: BYTE 12;"=" ASCI "PREPOSITION " MCONJ: BYTE 12;"=" ASCI "CONJONCTION " MART: BYTE 8;"=" ASCI "ARTICLE " MPREL: BYTE 8;"=" ASCI "PRO.REL " X100: VAL 0 < < R E L A I D E T A B L E S : < < PHRASE A ANALYSER : < PHR: VAL FREE < ZONE CONTENANT LA PHRASE < A ANALYSER. APHR: WORD PHR+'8000 < RELAI INDEXE VERS LA < PHRASE A ANALYSER. FREE: VAL LPHR/2+FREE+1 < PROGRESSION DE LA ZONE LIBRE. < (+1 A CAUSE DE L'EOT QUE L'ON < AJOUTE SYSTEMATIQUEMENT EN < BOUT DE ZONE 'PHR'). < < ZONE DES ARGUMENTS : < LDUM: VAL 32 < LONGUEUR DE LA ZONE ARGUMENTS. DUMY: VAL FREE < ZONE DE TRANSMISSION DES < ARGUMENTS SYNTAXE-->SEMANTIQUE. PROP1: VAL 0 < NUMERO DU MOT DE LA ZONE < DUMY CONTENANT L'ADRESSE REELLE < DU 1ER MOT DE LA ZONE 'PROPOS'. PROPP: VAL 1 < RELAI D'ACCES A LA PROPOSITION < PRINCIPALE (ET AUX PROPOSITIONS < RELATIVES PAR INCREMENTATIONS < SUCCESSIVES DE +1). NPROP: VAL 2 < NBRE DE PROPOSITIONS RECONNUES. CONDRT: VAL 3 < CONDITIONS DE RETOUR DE < L'ANALYSE SYNTAXIQUE. FREE: VAL FREE+LDUM ADUMY: WORD DUMY+'8000 < RELAI INDEXE VERS LA ZONE DUMY. < < ZONE DES DESCRIPTEURS ET DES PROPOSITIONS : < DPHR: VAL FREE < ZONE DE DESCRIPTION LEXICO- < GRAPHIQUE DE LA PHRASE 'PHR'. FREE: VAL LDESC*LPHR/2+FREE < PROGRESSION DE LA ZONE LIBRE. ADPHR: WORD DPHR < ADRESSE DU 1ER DESCRIPTEUR < LEXICOGRAPHIQUE. < < A T T E N T I O N : < EN FAIT LA ZONE 'PROPOS' EST < EN RECOUVREMENT AVEC LA ZONE < 'DPHR' , ET LE 1ER MOT DE 'DUMY' < DONNE L'ADRESSE REELLE DE < LA ZONE 'PROPOS' .. < PROPOS: VAL FREE < ZONE DE DESCRIPTION DES < PROPOSITIONS CONTENUES DANS LA < PHRASE ANALYSEE. FREE: VAL LPHR/2+FREE APROPO: WORD PROPOS < ADRESSE DU RELAI DU 1ER MOT < DE LA 1ERE PROPOSITION. APR: WORD PROPOS < ADRESSE DU DESCRIPTEUR DU MOT < COURANT DE LA PROPOSITION < COURANTE. < < RELAIS COURANTS : < AI2H: WORD ZERO+PILE-LTNI-LTNI < @DE L'EN-TETE DE L'ITEM2. AI2: WORD ZERO+PILE-LTNI-LTNI+LTN,X < RELAI INDEXE VERS LE CORPS < DE L'ITEM2. ASEXEC: WORD TSEXEC,X < RELAI VERS LA TABLE DE TRAITE- < MENT DES TYPES DES NOEUDS DE < LA GRAMMAIRE. TSEXEC: EQU $ WORD ACTNT < ACTION NON TERMINALE. WORD ACTER < ACTION TERMINALE. WORD VIDE < NOEUD VIDE NON TERMINAL. WORD TERMIN < TERMINAL. WORD NTERM < NON-TERMINAL SYNTAXIQUE AVEC < ACTION EVENTUELLE SUR L'AVANT < DERNIER DESCF. WORD MOTP < TEST MOT PRECISE. WORD FIN < NOEUD VIDE TERMINAL. WORD FINPH < TEST DE FIN DE PHRASE. WORD FINNPH < TEST DE NON-FIN DE PHRASE. WORD RTSEP < TEST DE SEPARATEUR. WORD RTNSEP < TEST DE NON-SEPARATEUR. WORD NTERMC < NON-TERMINAL SYNTAXIQUE AVEC < ACTION EVENTUELLE SUR LE < DESCF COURANT. TYPMAX: VAL $-TSEXEC < 1ER TPE INEXISTANT. CG1: VAL 1 < 1ERE CATEGORIE GRAMMATICALE. IF DEBUG,,X100, TNOM: EQU $-CG1 < TABLE DES ADRESSES DES NOMS DES < CATEGORIES GRAMMATICALES. WORD MNOM WORD MVERB WORD MADJ WORD MADV WORD MPP WORD MPD WORD MINJ WORD MPREP WORD MCONJ WORD MART WORD MPREL NCG: VAL $-TNOM-CG1 < NBRE DE CATEGORIES GRAMMATICALES. ANOM: WORD TNOM,X < RELAI VERS LA TABLE DES NOMS < DES CATEGORIES GRAMMATICALES. X100: VAL 0 < < D E M A N D E S A C M S 4 : < DEMOUT: WORD '0202 < SORTIE MESSAGE. WORD 0 < @OCTET DU MESSAGE. WORD 0 < LONGUEUR OCTET DU MESSAGE. DEMIT: WORD '0602 < CHARGEMENT DES PAGES DU < DICTIONNAIRE DANS L'ITEM2. WORD PILE-LTNI-LTNI*2 WORD 2*LTNI WORD -1 DEMSGN: WORD '0402 < DEMANDE DE CHARGEMENT DES < OVERLAYS INITIALISEE EN < GENERATION DU PROCESSEUR. WORD BRANCH-ZERO*2 WORD ZERO-BRANCH+PILE-LTNI-LTNI*2 WORD -1 DEMCCI: WORD '0001 < APPEL DU CCI. < < P I L E D E L ' A N A L Y S E U R : < PILE: VAL FREE+1 APILE: WORD PILE-1 < POUR INITIALISER LE REGISTRE < K DANS LA ZONE LIBRE. < < A D R E S S E D E S R O U T I N E S : < APRINT: WORD PRINT < EMISSION DES MESSAGES. AOVL: WORD OVL < CHARGEMENT DES OVERLAYS. GOBACK: WORD E371 < PASSAGE A L'OVERLAY SUIVANT. ANOEUD: WORD NOEUD < ROUTINE PRINCIPALE ET RECURSIVE < D'ANALYSE SYNTAXIQUE. AEXPRO: WORD EXPRO < ROUTINE RECURSIVE D'EXTRACTION < DES PROPOSITIONS CONTENUES < DANS LA PHRASE ANALYSEE. ASTACK: WORD STACK < STACKAGE MOT D'UNE PROPOSITION. AREC: WORD REC < REECRITURE DES PROPOSITIONS < RELATIVES. IF DEBUG,,X100, APMOT: WORD PMOT < EDITION DU MOT COURANT. X100: VAL 0 < < C O N S T A N T E S : < NGE: ASCI "GE" < NOM DE L'OVERLAY 'GE'. NSEMA: ASCI " C" < NOM DE L'OVERLAY D'ANALYSE < SEMANTIQUE. NDIC: ASCI ": 3" < NOM DE LA PAGE DES MOTS USUELS. BYTE '40;"0" BYTE '04;"T" PAGE < < < E M I S S I O N D ' U N M E S S A G E : < < < ARGUMENT : < A=@MOT DHUN MESSAGE A EMETTRE , < DONT LE 1ER OCTET CONTIENT LA < LONGUEUR. < < PROG PRINT: EQU $ PSR C < SAVE LA BASE C. LR A,C < C=@MOT DU MESSAGE. ADR A,A ADRI 1,A < A=@OCTET DU MESSAGE. STA DEMOUT+1 < QUE L'ON MET DANS DEMOUT. LBY 0,C < RECUPERATION DE LA LONGUEUR. STA DEMOUT+2 < QUE L'ON MET DANS DEMOUT. LAD DEMOUT SVC 0 < ENVOI DU MESSAGE A CMS4. PLR C < RESTAURE LA BASE C. RSR PAGE IF DEBUG,,X100, < < < E D I T I O N D U M O T C O U R A N T : < < < ARGUMENT : < C=ADRESSE DU DESCRIPTEUR DU MOT COURANT. < < PMOT: EQU $ LA DESCI,C < A=INDEX DU 1ER CARACTERE < DU MOT COURANT. SBT 2 < A=@OCTET DU MOT COURANT. STA DEMOUT+1 < QUE L'ON MET DANS DEMOUT. LA DESCL,C < A=LONGUEUR DU MOT COURANT. STA DEMOUT+2 < QUE L'ON MET DANS DEMOUT. LAD DEMOUT SVC 0 < EDITION DU MOT COURANT. RSR X100: VAL 0 PAGE < < < E X T R A C T I O N D E S P R O P O S I T I O N S : < < < FONCTION : < CETTE ROUTINE RECURSIVE EXTRAIT LES < PROPOSITIONS CONTENUES DANS LA < PHRASE QUE L'ON ANALYSE ; LA DERNIERE < PROPOSITION EXTRAITE EST LA PROPOSITION < PRINCIPALE. < < FINPRO: VAL 0 < INDICATEUR DE FIN DE LISTE DES < MOTS D'UNE PROPOSITION. FINPHR: VAL -1 < INDICATEUR DE FIN DE PHRASE. < < < NOTA : < D1 , D2 ,... DESIGNANT LES < ADRESSES DES DESCRIPTEURS DE MOTS , < LE RESULTAT DE CETTE ROUTINE EST UNE < LISTE IMPLEMENTEE EN 'PROPOS' , < ET DONT LE FORMAT EST LE SUIVANT : < (ET N1 , N2 ,.. LES NIVEAUX RECURSIFIS < DES PROPOSITIONS) < < N1 DN...DK <FINPRO> N2 DI...DJ <FINPRO>....<FINPRO><FINFRA>. < < < UTILISATION DES REGISTRES : < B=NIVEAU RECURSIF COURANT , < Y=ADRESSE DU 1ER DESCRIPTEUR DU NIVEAU (B). < < EXPRO: EQU $ CPZ DESCI,C < EST-CE LA FIN DE PHRASE ??? JL E351 < OUI , ON FAIT COMME SI ON < DESCENDAIT UN NIVEAU RECURSIF. LBY DESCF,C < SINON , ACCES AU NIVEAU DE < RECURSIVITE DU MOT COURANT. CPR A,B < EST-IL AU NIVEAU COURANT ??? JG E351 < (B)>(A) : ON DESCEND DE < NIVEAU RECURSIF. JL E352 < (B)<(A) : ON MONTE DE NIVEAU < DE RECURSIVITE. < < DEPLACEMENT A NIVEAU RECURSIF CONSTANT : < ADRI LDESC,C < PROGRESSION DANS LA PHRASE. JMP EXPRO < VERS LE MOT SUIVANT ... < < DEPLACEMENT ASCENTIONNELLE RECURSIF : < E352: EQU $ PSR A,B,Y,C < SAVE LE DESCF DU MOT COURANT , ET < SAVE B=NIVEAU COURANT DE RECUR- < SIVITE , < ET Y=ADRESSE DU 1ER DESCRIPTEUR < DU NIVEAU (B). < ET C=ADRESSE DU 1ER DESCRIPTEUR < DE NIVEAU (B)+1. ANDI FRONT-1 < SUPPRESSION DE LA FRONTIERE < EVENTUELLE. STBY DESCF,C < LE MOT COURANT PERD PROVI- < SOIREMENT SON CARACTERE DE < FRONTIERE ... < (EVENTUELLEMENT !!!) LR A,B < CHANGEMENT DE NIVEAU RECURSIF. LR C,Y < CHANGEMENT DU DEBUT DU NIVEAU. BSR AEXPRO < APPEL RECURSIF DE EXPRO. < < RETOUR POUR DESCENTE DE NIVEAU : < PLR A,B,Y,W < RESTAURATION DU NIVEAU DE < RECURSIVITE ET DE L'ADRESSE < DU 1ER DESCRIPTEUR DU NIVEAU. < ET W=ADRESSE DU 1ER DESCRIPTEUR < DE NIVEAU (B)+1. STBY DESCF,W < LE MOT COURANT RETOUVE EVENTUEL- < LEMENT SON CARACTERE DE MOT < FRONTIERE ... ANDI FRONT-1 < A=NIVEAU DE RECURSIVITE DU MOT < COURANT QUE L'ON ATTRIBUE A < LA PROPOSITION COURANTE. BSR ASTACK < STACKAGE DU NIVEAU DE RECUR- < SIVITE DE LA PROPOSITION. XR Y,C < C POINTE LE 1ER DESCRIPTEUR < DU NIVEAU , ET Y POINTE LE 1ER < DESCRIPTEUR SUR LE QUEL IL < FAUT ARRETER L'EDITION. < < RECHERCHE D'UN <GN> PRECEDANT IMMEDIATEMENT : < LR W,C < C POINTE LE 1ER DESCRIPTEUR < DU NIVEAU SUPERIEUR. E357: EQU $ LBY DESCF,C CPI FRONT JGE E860 < ON EST A UNE FRONTIERE. CPR A,B < SI ON N'EST PAS AU NIVEAU 0 , < EST-ON AU NIVEAU COURANT ??? JNE E861 < NON , ON CONTINUE A RECULER < A PRIORI. E860: EQU $ LBY DESCS,C < ACCES A L'EVENTUEL INDICATEUR < DE DEBUT DE GROUPE. CPI TINT < EST-CE UNE INTERJECTION ??? JE E358 < OUI , ON L'EDITE ... CPI TGN < EST-CE UN DEBUT DE <GN> ??? JE E370 < OUI , ON VA LE MEMORISER. < SUR LE DEBUT DU <GN>. E861: EQU $ LR C,A < POUR VALIDATION DE LA BASE C. CP ADPHR < EST-ON SUR LE 1ER DESCRIPTEUR < DE LA PHRASE ??? JE E370 < OK , ON EST AU DEBUT DE PHRASE. ADRI -LDESC,C < SINON , RETOUR ARRIERE DANS < LA PHRASE. JMP E357 < < MEMORISATION DU NIVEAU DE RECURSIVITE DE LA PROPOSITION : < E370: EQU $ E358: EQU $ LBY DESCF,C CPI FRONT+1 < ON FAIT MONTER LE CARY SI < (A)<FRONT+1 , SOIT SI : < (A)<=FRONT. ADCR B < ON FAIT +1 SUR LE NIVEAU DE < RECURSIVITE SI ON N'EST < PAS A UNE FRONTIERE , OU SI ON < EST AU NIVEAU 0. ADRI -1,B < RESTAURE B TEL QU'IL DOIT ETRE .... ANDI FRONT-1 < A=NIVEAU DE RECURSIVITE DU MOT. JMP E872 < VERS LA RECUPERATION ... < < BOUCLE DE RECUPERATION D'UNE PROPOSITION : < E353: EQU $ CPZ DESCI,C < TEST DE FIN DE PHRASE ??? JL E351 < OUI , ON FAIT COMME SI ON TROUVAIT < UNE DESCENTE DE NIVEAU. LBY DESCF,C < ACCES AU NIVEAU DU MOT COURANT. CPI FRONT < EST-CE UN MOT FRONTIERE ??? JGE E870 < OUI , ON ARRETE LA RECUPERATION. E872: EQU $ SBR B,A < CALCUL DE LA DISTANCE DU NIVEAU < DU MOT COURANT AU NIVEAU < COURANT. CPI 1 JG E355 < LE MOT EST IGNORE : SEULS LES < MOTS DE MEME NIVEAU , OU DU < NIVEAU SUPERIEUR SONT < EMPILES .... < < EMPILEMENT DU MOT COURANT DE LA PROPOSITION COURANTE : < LR C,A < A=@DESCRIPTEUR DU MOT COURANT. BSR ASTACK < EMPILEMENT DU MOT COURANT. E355: EQU $ ADRI LDESC,C < PROGRESSION DANS LA PHRASE < COURANTE. CPR Y,C < TEST DE FIN DE PROPOSITION. JNE E353 < NON , ON CONTINUE .... < < FIN DE LA PROPOSITION COURANTE : < E871: EQU $ LAI FINPRO < A=<FINPRO>. BSR ASTACK < EMPILEMENT DE <FINPRO>. JMP EXPRO < EN CAS DE FIN DE PROPOSITION , < ON PASSE AU MOT LA SUIVANT. < < CAS DE LA RENCONTRE D'UN MOT FRONTIERE : < E870: EQU $ LR Y,C < ON SAUTE LE MOT FRONTIERE , < AINSI QUE QUE TOUX CEUX QUI < LE SUIVENT. JMP E871 < VERS LA FIN DE PROPOSITION. < < DEPLACEMENT PAR DESCENTE RECURSIVE : < E351: EQU $ RSR < ON FAIT UN RETOUR POUR EDITER < LA PROPOSITION QUE L'ON VIENT < D'ISOLER. < < < E M P I L E M E N T M O T < D ' U N E P R O P O S I T I O N : < < < FONCTION : < CETTE ROUTINE EMPILE L'ARGUMENT < (A) DANS LA PILE 'PROPOS' , ET < FAIT PROGRESSER LE POINTEUR DE < PILE 'APR'. < < < ARGUMENT : < A=@DESCRIPTEUR DE MOT , OU < =<FINPRO> , OU < =<FINPHR>. < < STACK: EQU $ STA &APR < EMPILEMENT DE L'ARGUMENT. IC APR < PROGRESSION DU POINTEUR DE PILE. RSR PAGE < < < G R O U P E S Y N T A G M A T I Q U E : < < < FONCTION : < MEMORISER DANS LE DESCS DU MOT < COURANT POUR 'TYPGR' , ET DANS LE < DESCS DU MOT PRECEDENT POUR 'TYPGRP' < UN INDICATEUR DE DEBUT DE GROUPE < SYNTAGMATIQUE. < < < ARGUMENT : < A=<ARGUMENT1>=TYPE DU GROUPE. < < TYPGR: EQU $ STBY DESCS,C RSR < AIN'T IT HARD ???? TYPGRP: EQU $ STBY DESCS-LDESC,C RSR < MEME REMARQUE ... < < < A N N U L A T I O N I N D I C A T E U R : < < < FONCTION : < ANNULE LES EFFETS DE 'TYPGR' LORS < DES RETOURS EN ARRIERE DANS < L'ANALYSE. < TYPERR : SUR LE MOT COURANT , < TYPERP : SUR LE MOT PRECEDENT. < < < ARGUMENT : < A=<ARGUMENT1>=0. < < < RESULTAT : < B=5#0 (APPEL PAR 'TACTER'). < < TYPERR: EQU $ STBY DESCS,C < RAZ INDICATEUR DE DEBUT GROUPE. LBI 5 < RETOUR EN ERREUR. RSR TYPERP: EQU $ STBY DESCS-LDESC,C LBI 5 RSR PAGE < < < R E E C R I T U R E D E S < P R O P O S I T I O N S R E L A T I V E S : < < < FONCTION : < CETTE ROUTINE EST CHARGEE D'UN < TRAVAIL SEMI-SEMANTIQUE ; ELLE DOIT < METTRE CHAQUE PROPOSITION ISOLEE < SOUS LA FORME SUIVANTE : < <SUJET>((<PRO.REL>)<OPERATEUR>(<OBJET>)) , < PUIS : < <SUJET>(<OPERATEUR>(<OBJET>))(<PRO.REL>) , < EN TENANT COMPTE DES ECRITURES < SPECIFIQUES A CHAQUE PRONOM RELATIF , < ET EN PARTICULIER A 'QUI' ET 'QUE'. < <N1> ET <N2> DESIGNANT DES <GN> , < ET <V> UN <GV> , ON A LES REGLES < DE REECRITURE SUIVANTE : < < <N1>'QUI'<V><N2>--><N1><V><N2> , < <N1>'QUE'<V><N2>--><N2><V><N1> , < <N1>'QUE'<N2><V>--><N2><V><N1>. < < < ARGUMENT : < A=@NIVEAU DE RECURSIVITE DE LA < PROPOSITION (A STACKER...). < < REC: EQU $ PSR X < < NETTOYAGE DU DESCRIPTEUR DE PROPOSITION : < LB APR < B=POINTEUR DE PILE. SBT 0+16 < POSITIONNEMENT DE L'INDEX. STB APR < APR DEVIENT UN RELAI INDEXE. LXI LREL-1 E802: EQU $ STZ &APR < REMISE A 0. JDX E802 RBT 0+16 < SUPPRESSION DE L'INDEX. STB APR < RESTAURE LE POINTEUR DE PILE. < < STACKAGE DE LA PROPOSITION : < BSR ASTACK < < PREPARATION DE LA REECRITURE : < LR A,W < W BASE LE NIVEAU DE RECUR- < SIVITE DE LA PROPOSITION. LA APR LR A,C ADRI -2,C < C BASE LE DESCRIPTEUR DE < PROPOSITION RELATIVE -2. ADRI LREL-1,A STA APR < RESERVATION DE LA MEMOIRE < DESTINEE AU DESCRIPTEUR DANS < LA PILE. LYI 0 < Y=0=PAS DE GROUPE CONJONCTIF < EN COURS. < < PARCOURS DE LA PROPOSITION A LA RECHERCHE DES < DEBUTS DE GROUPE SYNTAGMATIQUES : < E804: EQU $ ADRI 1,W < PASSAGE AU MOT SUIVANT DE < LA PROPOSITION. LA 0,W < A=@DESCRIPTEUR DU MOT COURANT. JAE E805 < EN FAIT : FIN DE PROPOSITION. LR W,B < SAVE W DANS B. LR A,W < W=@DESCRIPTEUR DU MOT COURANT. LBY DESCS,W < ACCES A L'INDICATEUR DE DEBUT < DE GROUPE SYNTAGMATIQUE. JAE E806 < CE N'EST PAS UN DEBUT DE GROUPE. CPI TCONJ < OUI , ALORS EST-CE UN 'TCONJ' ??? JE E809 < OUI , LES CONJONCTIONS NE SONT < PAS TRAITEES LORS DE CETTE < PASSE. CPZR Y < Y-A-T'IL UN GROUPE CONJONCTIF < EN COURS ??? JE E840 < NON , DONC LE DEBUT DE GROUPE < SUR LEQUEL ON EST DOIT ETRE PRIS. < < CAS DES 'TCONJ' EN COURS : < ADRI 1,Y < COMPTAGE DES MOTS RECUPERES A LA < SUITE D'UN 'TCONJ'. CPBY 1,C < LE GROUPE PRECEDENT EST-IL < DE MEME NATURE QUE LE GROUPE < QUI COMMENCE ??? JE E806 < OUI , LE GROUPE QUI COOMENCE < ICI EST DONC IGNORE. LYI 0 < SI LES 2 GROUPES DIFFERENT , < ON MET FIN AU 'TCONJ' EN COURS , < ET ON COMMENCE UN NOUVEAU < GROUPE. < < CAS DES DEBUTS DE GROUPE TGV/TGN/TINT/TREL : < E840: EQU $ ADRI 2,C < PROGRESSION DE LA BASE DE < GROUPE DANS LE DESCRIPTEUR. STBY 1,C < L'OCTET2 RECOIT L'INDICATEUR < DE DEBUT DE GROUPE. CPI TREL < EST-CE UN GROUPE 'TREL' ??? LAI 1 < NON A PRIORI (1=VALEUR < INITIALE DU COMPTEUR OCTET3). JNE E807 < CAS DES GROUPE TGN/TGV/TINT. LA DESCF,W < CAS DES GROUPES 'TREL'. ANDI 'FF < A=DISCRIMINANT DES PRONOMS < RELATIFS. E807: EQU $ OR 1,C < CONCATENATION AVEC L'INDICATEUR < DE DEBUT DE GROUPE (OCTET2). STA 1,C < MISE EN PLACE : < OCTET2=INDICATEUR DEBUT GROUPE , < OCTET3=COMPTEUR INITIAL DES < MOTS DU GROUPE , OU < DISCRIMINANT SI 'TREL'. STB 0,C < LE MOT0 RECOIT LE RELAI DE < DEBUT DE GROUPE (=@@MOT DE < DEBUT DU GROUPE). < < PASSAGE AU MOT SUIVANT : < E808: EQU $ LR B,W < RESTAURE W. JMP E804 < (S'IL EXISTE....). < < CAS DES GROUPES CONJONCTIFS : < E809: EQU $ LYI TCONJ < Y=TCONJ#0 : POUR MEMORISER < LE DEBUT DU GROUPE. < < CAS DES MOTS QUI NE SONT PAS A < UN DEBUT DE GROUPE : < (OU DANS UN GROUPE IDENTIQUE AU < PRECEDENT ET SEPARE PAR UN 'TCONJ'). < E806: EQU $ IC 1,C < ON SE CONTENTE DE LES COMPTER. JMP E808 < VERS L'ACCES AU MOT SUIVANT. < < R E E C R I T U R E D E L A P R O P O S I T I O N : < E805: EQU $ LR Y,A CPI TCONJ JNE E876 < OK , IL N'Y A PAS DE 'TCONJ' < EN COURS , OU BIEN AU MOINS UN < GROUPE LE SUIVAIT. DC 1,C < SINON , 'TCONJ' SE TROUVAIT < SEUL EN BOUT DE PROPOSITION , < ON LE SUPPRIME DONC DU DERNIER < GROUPE. E876: EQU $ LA APR LR A,C ADRI -LREL+1,C < REINITIALISATION DE C SUR LA < 1ERE ENTTREE DU DESCRIPTEUR. LBY QUIQUE+1,C < ACCES AU DEBUT DE GROUPE < 'TREL' PRESUME ... CPI TREL < EST-CE BIEN UN 'TREL' ???? JNE E810 < NON RIEN A FAIRE .... < < CAS D'UNE VRAIE PROPOSITION RELATIVE : < LA QUIQUE+1,C ANDI 'FF < ACCES AU DISCRIMINANT. JAE E813 < CE N'EST PAS 'QUI'/'QUE'/... < < CAS DES PRONOMS 'QUI'/'QUE'/... : < CPI TQUI < EST-CE 'QUI' ?? JE E813 < C'EST 'QUI'. CPI TQUE < EST-CE 'QUE' ???? JNE $ < E R R E U R A N A L Y S E .... < < CAS DU 'QUE' : < LA ALPHA,C LB ALPHA+1,C PSR A,B < SAUVEGARDE DE <ALPHA> DANS LA < PILE D'ANALYSE. LX BETA,C LY BETA+1,C < (X,Y)=<BETA> PRESUME. LBY GVREL+1,C < ACCES A L'INDICATEUR DE DEBUT < DE GROUPE DE GVREL. CPI TGV < EST-CE BIEN 'TGV' ??? JE E812 < OUI , OK , ON A DANS L'ORDRE : < <GV><BETA>. < < CAS OU L'ON A : 'QUE'<BETA><GV> : < LA GVREL,C LB GVREL+1,C < (A,B)=<BETA> REEL , ET < (X,Y)=<GV> REEL. XR A,X < ECHANGE DE <BETA> XR B,Y < ET <GV>. STA GVREL,C < MISE EN PLACE DU VRAI <GV>. STB GVREL+1,C < (A LA PLACE DE <BETA>). < < REECRITURE : < <ALPHA>'QUE'<GV><BETA>--><BETA>'QUE'<GV><ALPHA> < E812: EQU $ STX ALPHA,C < <BETA> ECRASE <ALPHA>. STY ALPHA+1,C PLR A,B < RESTAURE LE VRAI <ALPHA>. STA BETA,C < <ALPHA> REMPLACE <<BETA>. STB BETA+1,C < < MISE SOUS LA FORME <SUJET>(<OPERATEUR>(<OBJET>))(<PRO.REL>) : < E813: EQU $ LA QUIQUE,C LB QUIQUE+1,C PSR A,B,C < SAVE <PRO.REL> DANS LA PILE < D'ANALYSE. XR K,C < SAVE K DANS C. ADRI LREL-2-1,K < K POINTE BETA+1. PLR A,B,X,Y < RECUPERATION DE <GV><BETA>. ADRI -2,K < DEPLACEMENT DE K. PSR A,B,X,Y < MISE DE <GV><BETA> EN < <OPERATEUR><OBJET>. LR C,K < RESTAURE LA PILE K. PLR A,B,C < RESTAURATION DE C ET <PRO.REL>. STA BETA,C < MISE DU <PRO.REL> EN QUEUE STB BETA+1,C < DU DESCRIPTEUR. < < ON A DONC MAINTENANT : < <SUJET>(<OPERATEUR>(<OBJET>))(<PRO.REL>). < < SORTIE DE LA ROUTINE : < E810: EQU $ PLR X < RESTAURE X. RSR < ET C'EST TOUT .... PAGE < < < T E S T S E P A R A T E U R D E V A N T U N E < C O N J O N C T I O N D E C O O R D I N A T I O N : < < < FONCTION : < CETTE ROUTINE APPELEE PAR LA GRAMMAIRE < DE RECONNAISSANCE DES CONJONCTIONS < DE COORDINATION , LAISSE LE NIVEAU DE < RECURSIVITE INCHANGE , SAUF SI LE SEPARATEUR < PRECEDANT LA CONJONCTION EST DE TYPE 'SEP2'. < < < ARGUMENTS : < A='FF , < C=@DESCRIPTEUR SUIVANT LA CONJONCTION. < < TSEPAC: EQU $ AND DESCS-LDESC,C < A=TYPE DU SEPARATEUR PRECEDANT < LA CONJONCTION. CPI SEP2 < EST-IL DE TYPE 'SEP2' ??? JNE E720 < NON , IL EST IGNORE. LAI '7F < CAS DES TYPE 'SEP2' : STBY -2*LDESC+DESCF,C < ON DEMANDE UN RETOUR AU < NIVEAU DE RECURSIVITE DE BASE. E720: EQU $ RSR PAGE < < < A N A L Y S E U R S Y N T A X I Q U E : < < < FONCTION : < CETTE ROUTINE EST LA ROUTINE < PRINCIPALE D'ANALYSE SYNTAXIQUE < RECURSIVE ; ELLE S'APPUIE SIMULTA- < NEMENT SUR LA GRAMMAIRE DU FRANCAIS , < SUR LA LISTE LEXICOGRAPHIQUE DE LA < PHRASE A ANALYSER. < < < UTILISATION DES REGISTRES : < W : BASE LE NOEUD COURANT DE LA GRAMMAIRE , < OU L'ADRESSE DE L'ADRESSE DU SUCCESSEUR < COURANT DU NOEUD COURANT. < C : BASE LA LISTE DESCRIPTIVE ET < LEXICOGRAPHIQUE DE LA PHRASE. < B : CONTIENT LA CONDITION COURANTE < DE PARCOURS DE LA GRAMMAIRE : < 0 : OK , < 1 : MOT PRECISE NON TROUVE , < OU TERMINAL NON RECONNU < (AU POINT DE VUE DES CATEGO- < RIES GRAMMATICALES). < 2 : FIN DE LISTE SUCCESSEURS , < 3 : PAS DE FIN DE PHRASE. < 4 : ERREUR DE SEPARATEUR. < 5 : CODE DE 'TYPERR'. < < < ARGUMENT : < W=ADRESSE DU NOEUD COURANT DE LA GRAMMAIRE , < C=@DESCRIPTEUR COURANT DE LA PHRASE. < A=EN GENERAL CONTIENT L'ADRESSE DE < L'ADRESSE DU NOEUD COURANT DANS UNE < LISTE DE SUCCESSEURS. < < < RESULTAT : < B=CONDITION DE RETOUR DE LA GRAMMAIRE , < C=LA VALEUR ARGUMENT DANS LE CAS D'UN < RETOUR EN ERREUR , < ET UNE VALEUR EN GENERALE DIFFERENTE < (DUE AU PARCOURS DE LA PHRASE) EN CAS DE RETOUR < OK (B=0). < < NOEUD: EQU $ PSR A,W < BEGIN RECURSIVITE. PSR C < LA BASE C EST SAUVEGARDEE A < PART AFIN DE POUVOIR CHOISIR < AU RETOUR ENTRE LA RESTAURER < OU PAS .... LBI 0 < CONDITION OK A PRIORI. < < ACCES AU NOEUD COURANT : < LBY TYPE,W CPI TYPMAX < VALIDATION DU PARCOURS DE LA < GRAMMAIRE .... JL $+2 < OK. ACTD < E R R E U R A N A L Y S E ... LR A,X < X=TYPE DU NOEUD COURANT. < < TRANSMISSION DE <ARGUMENT1> AUX TYPES : < LA TYPE,W ANDI 'FF < A=<ARGUMENT1>. BR &ASEXEC < AIGUILLAGE SPECIFIQUE REALISANT < LE TYPE DU NOEUD. < < R E T O U R D E L A R E A L I S A T I O N < D E S T Y P E S : < LOOPN: EQU $ CPZR B < TEST DES CONDITIONS DE RETOUR. JE GETS < LE RETOUR DU TYPE ETANT OK , < ON VA ESSAYER DE PARCOURIR LE < CHEMIN ISSU DE CE NOEUD ET ALLANT < VERS L'UN DESSUCCESSEURS. < < R E T O U R S E N E R R E U R : < RETER: EQU $ PLR C < EN CAS D'UN RETOUR EN ERREUR , < ON RESTAURE LA BASE C DONNEE < COMME ARGUMENT D'ENTREE. < < R E T O U R D E L ' A N A L Y S E : < RETURN: EQU $ PLR A,W < FIN DE LA RECURSIVITE COURANTE. RSR < RETOUR AVEC LA CONDITION (B). < < R E T O U R O K : < RETOK: EQU $ ADRI -1,K < ON DECREMENTE LE REGISTRE K , < AFIN DE NE PAS DEPILER LA BASE < C ARGUMENT D'ENTREE , AFIN DE < TRANSMETTRE LA VALEUR TELLE < QU'ELLE VIENT D'ETRE EVENTUELLE- < MENT MODIFIEE ... JMP RETURN < VERS LA SORTIE DE L'ANALYSEUR. < < A C C E S A U X S U C C E S S E U R S : < GETS: EQU $ ADRI SUCCES,W < POSITIONNEMENT DE LA BASE < W SUR LE 1ER NOEUD SUCCESSEUR < DU NOEUD COURANT. < < BOUCLE DE PARCOURS DE LA LISTE < DES NOEUDS SUCCESSEURS : < E100: EQU $ LA 0,W < RECUPERATION DE L'ADRESSE < PRESUMEE D'UN NOEUD SUCCESSEUR. JAE E101 < ERREUR : ON EST ARRIVE AU BOUT < DE LA LISTE DES SUCCESSEURS. XR A,W < OK , ON A TROUVE UN SUCCESSEUR : < W=@DU NOEUD SUCCESSEUR , < ET A=SAVE LE REGISTRE W < CONTENANT L'ADRESSE DE L'ADRESSE < DU SUCCESSEUR. BSR ANOEUD < VERS LE TRAITEMENT DU NOEUD < SUCCESSEUR COURANT. < < R E T O U R D ' U N S U C C E S S E U R : < LR A,W < RESTAURE LE REGISTRE W. CPZR B < TEST DES CONDITIONS DE RETOUR < DU NOEUD SUCCESSEUR. JE RETOK < OK , ON FAIT UN RETOUR OK. ADRI 1,W < DANS LE CAS D'UN RETOUR EN ERREUR < DU NOEUD SUCCESSEUR , ON TENTE DE < PASSER SUR LE NOEUD SUCCESSEUR < SUIVANT. JMP E100 < < CAS OU IL N'Y A PLUS DE NOEUDS SUCCESSEURS : < E101: EQU $ LBI 2 < B=2#0 : CODE D'ERREUR CORRESPON- < DANT AU FAIT QU'ON EST ARRIVE < AU BOUT DE LA LISTE. JMP RETER < VERS UN RETOUR EN ERREUR. < < < T R A I T E M E N T D E S T Y P E S D E N O E U D S : < < < ARGUMENT : < A=<ARGUMENT1>. < < < N O E U D V I D E N O N T E R M I N A L : < VIDE: EQU GETS < VERS L'ACCES AUX SUCCESSEURS. < < N O E U D V I D E T E R M I N A L : < < FONCTION : < DANS LE CAS OU <ARGUMENT1> EST < DIFFERENT DE 0 , ELLE L'AJOUTE A < L'OCTET0 DU DESCF DU DESCRIPTEUR < LEXICOGRAPHIQUE PRECEDENT. < FIN: EQU $ JAE RETOK < <ARGUMENT1>=0 : RIEN A FAIRE , < VERS UN RETOUR OK. LR A,X < SINON : X=<ARGUMENT1>. LBY DESCF-LDESC,C < A=OCTET0 DU DESCF DU DESCRIPTEUR < LEXICOGRAPHQIE PRECEDENT. ADR X,A < AUQUEL ON AJOUTE <ARGUMENT1>. STBY DESCF-LDESC,C < ET QUE L'ON MET A JOUR .... JMP RETOK < PUIS ON FAIT UN RETOUR OK ... < < A C T I O N N O N T E R M I N A L E : < ACTNT: EQU $ BSR ARG2,W < APPEL DE LA ROUTINE SPECIFI- < QUE AVEC : A=<ARGUMENT1>. JMP LOOPN < VERS LE TEST DE LA CONDITION < DE RETOUR ET L'ACCES EVENTUEL < AUX SUCCESSEURS. < < A C T I O N T E R M I N A L E : < ACTER: EQU $ BSR ARG2,W < APPEL DE LA ROUTINE SPECIFI- < QUE AVEC : A=<ARGUMENT1>. < < T E S T D E R E T O U R : < RETEST: EQU $ CPZR B < TEST DE LA CONDITION B. JE RETOK < OK , ON FAIT UN RETOUR OK. JMP RETER < ERREUR , RETOUR EN ERREUR. < < N O E U D N O N T E R M I N A L : < < FONCTION : < CE TYPE DE NOEUD CORRESPOND AUX VLASSES < GRAMMATICALES DU TYPE <GROUPE NOMINAL> , < <GROUPE VERBAL> ,.... < DE PLUS SI <ARGUMENT1> EST DIFFERENT < DE 0 , ELLE LE MET EN OCTET0 DU < DESCF DE L'AVANT-DERNIER DESCRIPTEUR < LEXICOGRAPHIQUE POUR NTERM ('TNT') , < ET DU DESCRIPTEUR LEXICO. COURANT < POUR NTERMC ('TNTC'). < NTERMC: EQU $ JAE E300 < OK , <ARGUMENT1>=0. STBY DESCF,C < SINON <ARGUMENT1> EST MIS EN < OCTET0 DU DESCF DU MOT COURANT. JMP E300 < ET C'EST PARTI ... NTERM: EQU $ JAE E300 < OK , <ARGUMENT1>=0. STBY -2*LDESC+DESCF,C < SINON , <ARGUMENT1> EST MIS < OCTET0 DE L'AVANT-DERNIER DESCRIP < TEUR LEXICOGRAPHIQUE. E300: EQU $ LA ARG2,W < A=ADRESSE DE LA SOUS-GRAMMAIRE < APPELEE PAR CE NOEUD NON < TERMINAL. XR A,W < W=ADRESSE DU PREMIER NOEUD < DE LA SOUS-GRAMMAIRE , < ET A=SAVE LA VALEUR PRECEDENTE < DE LA BASE W. BSR ANOEUD < VERS L'ANALYSE DE LA SOUS- < GRAMMAIRE. LR A,W < RESTAURE W=ADRESSE DU NOEUD < COURANT. JMP LOOPN < VERS LE TEST DE LA CONDITION < DE RETOUR ET L'ACCES EVENTUEL < AUX SUCCESSEURS. < < N O E U D T E R M I N A L : < < FONCTION : < CE TYPE DE NOEUD CORRESPOND A LA < RECHERCHE DE MOT DANS LA PHRASE A < ANALYSER POSSEDANT UNE CATEGORIE < GRAMMATICALE DONNE (ET CONTENUE < DANS <ARGUMENT2>). < < A T T E N T I O N : < 'TERMINAL' DESIGNE ICI UN TERMINAL < AU SENS SYNTAXIQUE , ET NON PAS < ADNS LE SENS OU IL UTILSE ICI ,C'EST-A < DIRE 'BOUT DE CHEMIN' DANS LA < GRAMMAIRE. < TERMIN: EQU $ CPZ DESCI,C < EST-ON EN BOUT DE PHRASE ???? JL E111 < OUI , FIN DE PHRASE , LE MOT < CHERCHE N'Y EST SUREMENT PAS .... LX ARG2,W < X=CATEGORIE GRAMMATICALE < RECHERCHEE POUR LE MOT COURANT < DE LA PHRASE. LA DESCC,C < ACCES AUX CATEGORIES GRAMMA- < TICALES DU MOT COURANT. IF NCATG4-4,X100,X100, LB DESCC+1,C < CATEGORIES GRAMMATICALES DU < MOT COURANT. X100: VAL 0 TBT 0,X < LE MOT COURANT POSSEDE-T'2L < LA CATEGORIE RECHERCHEE ???? JNC E111 < NON , ON VA DONC FAIRE UN RETOUR < EN ERREUR. LBY DESCF,C < SAVE L'OCTET0 DE DESCF. STX DESCF,C < SAVE LA CATEGORIE GRAMMATICALE < RECONNUE POUR LE MOT COURANT < DE <PHRASE> ; CE SAVE PEUT ETRE < PROVISOIRE , CAR LA CATEGORIE < REELLE DU MOT COURANT PEUT < ENCORE CHANGER .... STBY DESCF,C < RESTAURE L'OCTET0 DE DESCF. LBI 0 < SI LE MOT COURANT POSSEDE LA < CATEGORIE RECHERCHEE , ON FAIT < UN RETOUR OK : B=0. < < P R O G R E S S I O N D A N S L A P H R A S E : < PROGRE: EQU $ ADRI LDESC,C < PROGRESSION DE LA BASE DE LA < LISTE DESCRIPTIVE DE LA PHRASE. JMP GETS < VERS LA RECHERCHE DES SUCCES- < SEURS (SANS TESTER B , PUISQU' < ON LE SAIT NUL....). < < R E C H E R C H E M O T S P E C I F I E : < < FONCTION : < CE TYPE PERMET DE RECONNAITRE DES < MOTS PRECISES SPECIFIQUEMENT , TELS < 'QUE' , 'NE' , 'PAS' ,... < < ARGUMENT : < A=<ARGUMENT1>=LONGUEUR DU MOT RECHERCHE , ET < EVENTUELLEMENT UN DISCRIMINANT DANS LES < BITS8-11 (CF. TQUI/TQUE/...). < MOTP: EQU $ LY DESCI,C < Y=INDEX PRESUME DU 1ER MOT < CARACTERE COURANT DE LA PHRASE. CPZR Y < EST-ON EN BOUT DE PHRASE ???? JL E111 < OUI , DONC LE MOT RECHERCHE < N'Y EST PAS .... ANDI 'F < A=LONGUEUR DU MOT SPECIFIE. CP DESCL,C < ET COMPARAISON A LA LONGUEUR DU < MOT COURANT DE LA PHRASE. JNE E111 < ON N'EST PAS EN PRESENCE DU MOT < SPECIFIE , PUISQUE LES LONGUEURS < DIFFERENT. LR A,B < B=LONGUEUR DU MOT RECHERCHE. LXI 0 < X=INDEX DU MOT RECHERCHE. < < BOUCLE DE RECONNAISSANCE : < E110: EQU $ LBY &ARG2,W < A=UN CARACTERE DU MOT RECHERCHE. XR X,Y < ECHANGE DES INDEX. CPBY &APHR < ET COMPARAISON A UN CARACTERE < DU MOT COURANT DE LA PHRASE. XR X,Y < RE-ECHANGE DES INDEX. JNE E111 < ON N'EST PAS EN PRESENCE DU MOT < SPECIFIE. ADRI 1,X < PROGRESSION INDEX MOT PRECISE. ADRI 1,Y < PROGRESSION INDEX MOT ARGUMENT. ADRI -1,B < S'IL Y A IDENTITE , DECOMPTE < DES CARACTERES ENCORE A RECON- < NAITRE. CPZR B < EST-CE FINI ??? JNE E110 < NON , ON CONTINUE. < < CAS OU ON A TROUVE LE MOT SPECIFIE (A NOTER : B=0) : < LA DESCF,C ANDI 'FF00 < SUPPRESSION DE L'OCTET1. LR A,X < ET SAVE L'OCTET0 DANS X. LA TYPE,W ANDI 'F0 < RECUPERATION DU DISCRIMINANT < EVENTUEL (TQUI/TQUE/...). ORR X,A < REGROUPEMENT DES 2 OCTETS. STA DESCF,C < ET RANGEMENT DE DESCF. JMP PROGRE < VERS LA PROGRESSION DANS LA < PHRASE , PUIS LA RECHERCHE DES < SUCCESSEURS. < < CAS DES MOTS SPECIFIES NON TROUVES , < OU DES TERMINAUX DE CATEGORIES < NON RECONNUES : < E111: EQU $ LBI 1 < CODE DE L'ERREUR. JMP RETER < VERS UN RETOUR EN ERREUR. < < T E S T N O N T E R M I N A L < D E F I N D E P H R A S E : < FINPH: EQU $ CPZ DESCI,C < EST-ON EN FIN DE PHRASE ??? JL GETS < OUI , ALLONS VERS LA RECHERCHE < DES SUCCESSEURS EVENTUELS ; < A NOTER : B=0 !!! E120: EQU $ < ENTRY DE TEST DE NON-FIN DE < PHRASE. LBI 3 < SI ON N'EST PAS EN FIN DE PHRASE , < ON CONSIDERE CELA COMME UNE < ERREUR (B=3). JMP RETER < VERS UN RETOUR EN ERREUR ... < < T E S T N O N T E R M I N A L D E < N O N - F I N D E P H R A S E : < FINNPH: EQU $ CPZ DESCI,C < EST-ON EN FIN DE PHRASE ???? JGE GETS < NON , ALLONS VERS LA RECHERCHE < DES SUCCESSEURS EVENTUELS ; < A NOTER : B=0 !!! JMP E120 < SI ON EST EN FIN DE PHRASE , ON < CONSIDERE CELA COMME UNE < ERREUR DE CODE B=3. < < T E S T N O N - T E R M I N A L < D E S E P A R A T E U R : < RTSEP: EQU $ LA DESCS,C < ACCES AU SEPARATEUR PRECEANT < LE MOT COURANT. ANDI 'FF < PAR PRUDENCE , ON NE SAIT JAMAIS! CP ARG2,W < EST-CE LE SEPARATEUR RECHERCHE ??? JE GETS < OUI , C'EST BON ; A NOTER : B=0. < < CAS DES ERREURS DE SEPARATEURS : < E450: EQU $ LBI 4 < CODE D'ERREUR : B=4. JMP RETER < VERS UN RETOUR EN ERREUR ... < < T E S T N O N T E R M I N A L < D E N O N - S E P A R A T E U R : < RTNSEP: EQU $ LA DESCS,C < ACCES AU SEPARATEUR PRECEDANT < LE MOT COURANT. ANDI 'FF < TOUJOURS PAR PRUDENCE ... CP ARG2,W < EST-CE LE NON-SEPARATEUR CHERCHE? JNE GETS < OUI , OK ; A NOTER : B=0. JMP E450 < NON ERREUR DE SEPARATEUR ... PAGE < < < A N A L Y S E U R S Y N T A X I Q U E < D U F R A N C A I S : < < < E N T R Y : < < WORD DPHR < VALEUR INITIALE DE LA BASE C , < SUR LE 1ER DESCRIPTEUR LEXI- < COGRAPHIQUE. WORD LOC+'80 < VALEUR INITIALE DE LA BASE L. WORD AXIOME < VALEUR INITIALE DE LA BASE < W SUR L'AXIOME DE LA GRAMMAIRE. SYNTAX: EQU $ LRP K ADRI -1,K LR L,B < B=BASE L D'APPEL DE 'SYNTAX' , < POUR DISCRIMINER LES APPELS < PAR GE , DES APPELS PAR LE < CCI (!DEBUG OU !<R/C>). PLR C,L,W < INITIALISATION DE C , L ET W. LA APILE LR A,K < INITIALISATION DE LA PILE K. < < INITIALISATION DE L'ANALYSEUR : < LAI 6 STBY DEMSGN < MISE DE DEMSGN EN MODE 'LOAD < SOUS :SYS'. < < M O D E D ' A P P E L : < ADRI ZERO-PSYNT,B < B=0 SI APPEL APR LE CCI. CPZR B < TEST DU MODE D'APPEL ??? JNE E730 BR GOBACK < RIEN A FAIRE SI APPEL PAR CCI. E730: EQU $ < < A N A L Y S E S Y N T A X I Q U E : < BSR ANOEUD < LANCEMENT DE L'ANALYSE SYNTAXIQUE < SUR L'AXIOME DE LA GRAMMAIRE. < < R E T O U R D ' A N A L Y S E : < LY ADPHR < Y=@1ER DESCRIPTEUR LEXICO- < GRAPHIQUE DE LA PHRASE. LR Y,C < REPOSITIONNEMENT DE LA BASE C < SUR LE 1ERE DESCRIPTEUR. LXI CONDRT STB &ADUMY < TRANSMISSION DES CONDITIONS < DE RETOUR DE L'ANALYSE. PSR B < SAVE LES CONDITIONS DE RETOUR. CPZR B < TEST DES CONDITIONS DE RETOUR. JNE E400 < CAS D'UN RETOUR EN ERREUR. < < G E N E R A T I O N D E S N I V E A U X < D E R E C U R S I V I T E : < E710: EQU $ < RETOUR AU NIVEAU DE BASE. LXI 0 < X=NIVEAU COURANT DE RECURSIVITE. < < BOUCLE DE CALCUL DES NIVEAUX DE RECURISVITE DU DISCOURS : < E401: EQU $ CPZ DESCI,C < EST-CE LA FIN DE PHRASE ??? JL E402 < OUI , C'EST FINI ... LBY DESCF,C CPI FRONT < EST-ON A UNE FRONTIERE ??? JE E851 < OUI , LE NIVEAU EST INCHANGE , < ET ON LAISSE LA FRONTIERE. LA DESCF,C < POUR ACCES A L'OCTET0 DU < DESCF DU MOT COURANT. SARD 8+16 < SINON , B=-AMPLITUDE DE CHANGE- < MENT DE NIVEAU DE RECURSIVITE < DU MOT SUIVANT PAR RAPPORT AU < MOT COURANT. E403: EQU $ LR X,A < A=NIVEAU COURANT DE RECURSIVITE. SBR B,X < CALCUL DU NOUVEAU NIVEAU DE < RECURSIVITE POUR LE MOT SUIVANT. E850: EQU $ < ENTRY POUR FRONTIERE. STBY DESCF,C < QUE L'ON MET EN OCTET0 DU < DESCF DU MOT COURANT. ADRI LDESC,C < PASSAGE AU MOT SUIVANT. CPZR X < RETOUR AU NIVEAU DE BASE ??? JL E710 < OUI : CAS DES CONJONCTIONS DE < COORDINATION PRECEDEES PAR UN < SEPARATEUR DE TYPE 'SEP2'. JMP E401 < < CAS DES FRONTIERES : < E851: EQU $ ORR X,A < LE MOT COURANT EST MIS AU NIVEAU < DE RECURSIVITE COURANT , MAIS , < ON LAISSE LA FRONTIERE. JMP E850 < < < P R O P O S I T I O N S : < < < FONCTION : < LE MODULE SUIVANT EST DESTINE < A ISOLER LES PROPOSITIONS CONTENUES < DANS LA PHARSE , SOUS UNE FORME < PROCHE DES OPERATEURS BINAIRES DE < L'ARITHMETIQUE , SOIT EN GENERAL : < < <OPERANDE>(<OPERATEUR>(<OPERANDE>)) , SOIT ICI : < < <GN>(<PRO.REL>)(<GV>(<GN>)) , AVEC LES < DEFINTIONS RESTRICTIVES SUIVANTES : < < <GN>::=<PRO.PER> / < <ART>((<ADV>*)<ADJ>*)<NOM>((ADV>*)<ADJ>*)) , < <GV>::=<VERBE>(<ADV>*) / < 'NE'<VERBE>'PAS'(<ADV>*). < < < RESULAT : < LE RESULTAT DE CETTE PASSE EST < 'PROPP' QUI DONNE L'ADRESSE D'UNE LISTE < D'ADRESSE DE DESCRIPTEURS DES < PROPOSITIONS DE LA PHRASE ; UN < DESCRIPTEUR DE PROPOSITION DONNANT : < - LE NIVEAU DE RECURSIVITE DE LA PROPOSITION , < - LA LISTE DES ADRESSES DES DESCRIPTEURS < DES MOTS DE LA PROPOSITION , < - UN CODE DE FIN DE PROPOSITION ('0000). < < < PROPP-->(ADP1,DR1),...,(ADPI,DRI),...,(ADPN,DRN),-1 < DRI EST UN DESCRIPTEUR DE PROPOSITION SOUS < LA FORME : < <SUJET>((<PRO.REL>)<OPERATEUR>(<OBJET>)) , < ADPI--><NR>,ADM1,ADM2,...,ADMJ,...,ADMP,'0000 , < ADPI DESIGNE L'ADRESSE D'UN DESCRIPTEUR < DE PROPOSITION , ET < ADMJ L'ADRESSE D'UN DESCRIPTEUR DE MOT. < <NR> EST LE NIVEAU DE RECURSIVITE DE LA < PROPOSITION , < LA PROPOSITION P1 EST LA PROPOSITION PRINCIPALE < DE LA PHRASE. < < < G E N E R A T I O N D E S P R O P O S I T I O N S : < < E402: EQU $ LAD LDESC,C < A=@ DE LA 1ERE MEMOIRE LIBRE < DERRIERE LES DESCRIPTEURS. STA APROPO < A PARTIR DU QUEL , ON VA STA APR < SAUVEGARDER LES PROPOSITIONS. LR Y,C < C=@1ER DESCRIPTEUR. LBI -1 < B=NIVEAU COURANT DE RECURSIVITE. < (INITIAL). BSR AEXPRO < EXTRACTION DES PROPOSITIONS < CONTENUES DANS LA PHRASE. < < FIN DE PHRASE : < E400: EQU $ LAI FINPHR < A=<FINPHR>. BSR ASTACK < EMPILEMENT DE <FINPHR>. LXI PROP1 LA APROPO < RECUPERATION @ DE 'PROPOS'. STA &ADUMY < TRANSMISSION DE L'ADRESSE < REELLE DE LA ZONE 'PROPOS'. LXI PROPP LA APR < ADRESSE DU 1ER MOT LIBRE < DERRIERE LA ZONE 'PROPOS'. STA &ADUMY < TRANSMISSION DU RELAI VERS < LA PROPOSITION PRINCIPALE ... < < < L I S T E D E S P R O P O S I T I O N S : < < LXI 0 < INITIALISATION DU COMPTEUR DES < PROPOSITIONS RECONNUES. LY APROPO LR Y,W < W=@DU NIVEAU DE RECURSIVITE < DE LA 1ERE PROPOSITION. < < BOUCLE DE RECUPERATION DES ADRESSES DES < NIVEAUX DE RECURSIVITE DES PROPOSITIONS : < E600: EQU $ LA 0,W JAL E601 < FIN DE PHRASE. PSR W < EMPILEMENT DE L'ADRESSE DU < NIVEAU DE RECURSIVITE. ADRI 1,X < COMPTAGE DES PROPOSITIONS. < < BOUCLE DE PARCOURS D'UNE PROPOSITION : < E602: EQU $ ADRI 1,W < MOT SUIVANT. LA 0,W JANE E602 < (A)#<FINPRO> : ACCES MOT SUIVANT. ADRI 1,W < DANS LE CAS D'UNE FIN DE PRO- < POSITION , ON PASSE A LA SUIVANTE JMP E600 < VERS LE TEST DE FIN DE PHRASE. < < BOUCLE D'INVERSION DE L'ORDRE : < E601: EQU $ LAI NPROP XR A,X STA &ADUMY < TRANSMISSION DU NOMBRE DE < PROPOSITIONS RECONNUES. JAE E604 < CAS D'UN RETOUR EN ERREUR. XR A,X < X=NBRE DE PROPOSITIONS. E603: EQU $ PLR A < A=RELAI D'ACCES PROPOSITION. BSR AREC < STACKAGE DE LA PROPOSITION , < ET REECRITURE. JDX E603 < PROPOSITION SUIVANTE. E604: EQU $ LAI FINPHR BSR ASTACK < MISE D'UN INDICATEUR DE FIN < DE PHRASE DANS LA LISTE DES < PROPOSITIONS. PLR B < RESTAURE CONDITIONS DE RETOUR. LY ADPHR < Y=@1ER DESCRIPTEUR LEXICO. LR Y,C < C=@1ER DESCRIPTEUR LEXICOGRA- < PHIQUE DE LA PHRASE. PAGE IF DEBUG,,X100, < < < E D I T I O N D E L ' A N A L Y S E : < < CPZR B < TEST DU RESULTAT DE RETOUR. JE E205 < RETOUR OK , ON VA EDITER LE < RESULTAT DE L'ANALYSE. < < RETOUR EN ERREUR : < LAD MERR BSR APRINT < ENVOI D'UN MESSAGE D'ERREUR. JMP E202 < VERS LE CHARGEMENT DE L'OVERLAY < SUIVANT. < < CAS DES RETOURS OK : < E205: EQU $ LAD MCOR BSR APRINT < ENVOI D'1N MESSAGE OK. < < BOUCLE D'EDITION DU RESULTAT : < E200: EQU $ CPZ DESCI,C < EST-CE LA FIN DE PHRASE ??? JL E204 < OUI , ON ARRETE LA L'EDITION. LBY DESCF,C < ACCES A L'OCTET0 DU DESCF. ADRI 1,A ORI '80 < CONVERSION EN UN COMPTE DE < DUPLICATIONS POUR LES VISUS. STBY MMOT+1 < MAJ DU NBRE DE '>' A EDITER. LAD MMOT BSR APRINT < ENVOI D'UN MESSAGE DE DEBUT < DE LIGNE. BSR APMOT < EDITION DU MOT COURANT. LAD MSEM < ENVOI D'UN LIMITEUR. BSR APRINT LAD DESCV,C < A=@MOT DE LA VALEUR SEMANTIQUE. ADR A,A < A=@OCTET DE LA VALEUR. STA DEMOUT+1 < MIS DANS DEMOUT. LAI NSEM STA DEMOUT+2 < MISE EN PLACE DU COMPTE OCTETS. LAD DEMOUT SVC 0 < EDITION DE LA VALEUR SEMANTIQUE. LA DESCF,C ANDI 'FF < A=CATEGORIE GRAMMATICALE < RECONNUE POUR LE MOT COURANT. JAE E203 < LE MOT COURANT EST UN MOT < PRECISE , RIEN A EDITER. CPI '80 JGE E203 < MOT PRECISE DU TYPE 'QUI'/'QUE' , < IL EST DONC IGNORE. LR A,X < SINON : X=CATEGORIE RECONNUE. LA &ANOM < SINON A=@DU NOM DE LA CATEGORIE < GRAMMATICALE DU MOT COURANT. BSR APRINT < EDITION DE SA CATEGORIE ... E203: EQU $ < < PROGRESSION DANS LA PHRASE : < E210: EQU $ ADRI LDESC,C < PROGRESSION DU POINTEUR DES < DESCRIPTEURS LEXICOGRAPHIQUES. JMP E200 < AU MOT SUIVANT .... < < FIN DE PHRASE : < E204: EQU $ < < EDITION DU NBRE DE PROPOSITIONS : < LXI NPROP LA &ADUMY < A=NBRE DE PROPOSITIONS. ORI '30 < ON SUPPOSE QU'IL N'Y EN A PAS < PLUS DE 9 (!!!). STBY MNPRO+1 LAD MNPRO BSR APRINT < EDITION DU NBRE. < < EDITION DES PROPOSITIONS : < LXI PROPP LY &ADUMY < ACCES AU RELAI DE LA PROPOSITION < PRINCIPALE. < < EDITION D'UNE PROPOSITION : < E610: EQU $ LR Y,W < W=@@LISTE D'UNE PROPOSITION. LA 0,W < A=@LISTE D'UNE PROPOSITION. JAL E560 < FIN DE PHRASE. LR A,W < W=@NIVEAU DE RECURSIVITE DE < LA PROPOSITION COURANTE. LA 0,W < A=NIVEAU DE RECURSIVITE. JAL $ < E R R E U R .... ADRI 1,W < PASSAGE SUR LE 1ER MOT DE < LA PROPOSITION. ORI '80 < CONVERSION EN UN COMPTE DE < DUPLICATION POUR LES VISUS. ADRI 1,A < POUR AVOIR UN COMPTE>0. STBY MPRO+1 < MISE A JOUR DU MESSAGE. LAD MPRO BSR APRINT < CHANGEMENT DE LIGNE. E563: EQU $ LA 0,W JAE E561 < FIN DE PROPOSITION. < < EDITION DU MOT COURANT DE LA PROPOSITION COURANTE : < LR A,C < C=@DESCRIPTEUR DU MOT COURANT. LBY DESCS,C < ACCES INDICATEUR DEBUT DE GROUPE. JAE E580 < CE N'EST PAS UN DEBUT DE GROUPE. LAI MSEM-MSP < CAS DES DEBUTS DE GROUPE. E580: EQU $ ADRI MSP-ZERO,A < DEBUT DE GROUPE ??? < OUI : A=@MSEM , < NON : A=@MSP. BSR APRINT < ENVOI D'UN 'SPACE' DE < SEPARATION DE MOT. BSR APMOT < OK , EDITION DU MOT COURANT. ADRI 1,W < PASSAGE AU MOT SUIVANT DE LA JMP E563 < LA PROPOSITION COURANTE. < < FIN DE PROPOSITION : < E561: EQU $ ADRI LREL,Y < PASSAGE A LA PROPOSITION < SUIVANTE. JMP E610 < < FIN DE PHRASE : < E560: EQU $ < < EDITION DES PROPOSITIONS REECRITES : < LXI PROPP LY &ADUMY < ACCES PROPOSITION PRINCIPALE. < < EDITION 1 PROPOSITION : < E834: EQU $ LR Y,W CPZ 0,W JL E833 < FIN DE PHRASE. LAD MREC BSR APRINT < ENVOI D'UNE EN-TETE. ADRI 1,W < W BASE LE 1ER MOT DU DESCRIPTEUR < DE PROPOSITION RELATIVE. E832: EQU $ LA 0,W JAE E830 < FIN DE PROPOSITION. LR A,C < C=@@DESCRIPTEUR DU 1ER MOT < DU GROUPE COURANT. LBY 1,W < ACCES A L'INDICATEUR DE DEBUT < DE GROUPE. CPI TREL < EST-CE UN 'TREL' ??? JE E830 < OUI , FIN DE PROPOSITION. LA 1,W ANDI 'FF LR A,X < X=NBRE DE MOTS DANS LE GROUPE. E831: EQU $ PSR C,X LA 0,C LR A,C < C=@DESCRIPTEUR DU MOT COURANT. BSR APMOT < EDITION DU MOT COURANT. LAD MSP BSR APRINT < ENVOI D'1N SEPARATEUR. PLR C,X ADRI 1,C < MOT SUIVANT DU GROUPE. JDX E831 LAD MSEM BSR APRINT < ENVOI D'1N SEPARATEUR DE GROUPE. ADRI 2,W < PASSAGE GROUPE SUIVANT. JMP E832 < < FIN DE PROPOSITION : < E830: EQU $ ADRI LREL,Y < PASSAGE NEXT PROPOSITION. JMP E834 < < FIN DE PHRASE : < E833: EQU $ LY ADPHR < Y=@1ER DESCRIPTEUR LEXICO. LR Y,C < RESTAURATION DE LA BASE C. E202: EQU $ X100: VAL 0 < < C H A R G E M E N T D E L ' O V E R L A Y < S U I V A N T : < E371: EQU $ LAI BRANCH-ZERO LR A,W < W=@BRANCH D'OVERLAY. LA NSEMA < NOM DE LA BRANCHE D'ANALYSE < SEMANTIQUE. E201: EQU $ STA 0,W < LE NOM DE L'OVERLAY A APPELER < EST MIS EN TETE DE BRANCHE. LAD DEMSGN < A=@DEMSGN ; W=@BRANCH. BSR AOVL < TENTATIVE DE CHARGEMENT. LAD DEMCCI < CAS DES ERREURS DE CHARGEMENT. SVC 0 < RETOUR PROVISOIRE AU CCI. LA NGE < LORS D'UN !GO , ON PROCEDE < A UN RETOUR A 'GE'. JMP E201 < VERS LE CHARGEMENT DE 'GE'. PAGE < < < G R A M M A I R E F R A N C A I S E : < ( A S S E R T I V E - N E G A T I V E ) < < < NOTATIONS : < <GN> DESIGNE UN <GROUPE-NOMINAL> , < <GV> UN <GROUPE VERBAL>. < <XXX>* INDIQUE QUE LA VARIABLE <XXX> PEUT AVOIR < UN NBRE QUELCONQUE D'OCCURENCES SUCCESSIVES. < (<XXX>) INDIQUE QUE L'OCCURENCE DE <XXX> EST < FACULTATIVE. < <XXX>::=<YYY>/ < <ZZZ> SIGNIFIE QUE : < <XXX>::=<YYY> OU < <XXX>::=<ZZZ>. < < < <PHRASE>::=<PHRASE COMPLETE> , < <PHRASE>::=<PHRASE INTERJECTIVE>. < < AXIOME: EQU $ < AXIOME DE LA GRAMMAIRE. < < DISCRIMINATION ENTRE LES PHRASES COMPLETES < (SUJET+VERBE+COMPLEMENT) ET LES < PHRASES INCOMPLETES (INTERJECTIONS,...) : < AXIO1: BYTE TVID;0 WORD 0 WORD GN1 < LA <PHRASE> COMMENCE-T'ELLE < PAR UN <GN> ??? WORD INT < NON , EST-ELLE INTERJECTIVE ??? WORD 0 < NON , <PHRASE> INCOMPREHENSIBLE. < < P H R A S E I N T E R J E C T I V E : < < <PHRASE INTERJECTIVE>::=<INTERJECTION>. < INT: EQU $ BYTE TACT;TINT WORD TYPGR < MEMORISATION 'TYPE INTERJECTION'. WORD INT1 < ET C'EST PARTI ... WORD 0 INT1: BYTE TERM;0 WORD INTERJ < LE MOT COURANT DE <PHRASE> EST- < IL UNE INTERJECTION ??? WORD TFINT1 < OUI , REGARDONS SI LA PHRASE < EST TERMINEE ??? WORD 0 < LA PHRASE N'EST PAS TERMINEE , < LA <PHRASE> EST INCOMPREHENSIBLE. TFINT1: BYTE TFPH < TEST DE FIN DE PHRASE ??? WORD 0 WORD TFINT2 < OK , FIN DE PHRASE TROUVEE. WORD 0 < ERREUR : ON N'A PAS TROUVE LA < FIN DE PHRASE. TFINT2: BYTE TFIN;0 < FIN DE PHRASE INTERJECTIVE , < PAR UNE FIN DE CHEMIN DANS < LA GRAMMAIRE. < < P H R A S E C O M P L E T E : < < <PHRASE COMPLETE>::=<GN> , < <PHRASE COMPLETE>::=<GN><GV>. < GN1: BYTE TVID;0 < TEST DU SEPARATEUR PRECEDENT. WORD 0 WORD GDEB < EST-ON A UN DEBUT DE PHRASE ??? WORD GDEB2 < EST-ON DERRIERE UN 'SEP2' (',',.) WORD GCONT < AUTRES CAS .... WORD 0 < < T E S T D E D E B U T D E P H R A S E : < GDEB: BYTE TSEP;0 WORD SEP1+1 < TEST DU SEPARATEUR MAXIMUM. WORD GN2 < OUI , C'EST OK VERS <GN2>. WORD 0 < NON , CE N'EST PAS LE DEBUT < DE LA PHRASE. < < T E S T D E S E P 2 : < GDEB2: BYTE TSEP;0 WORD SEP2 < TEST DES SEPARATEURS 'SEP2' ??? WORD GN2 < OUI , OK VERS <GN2> ... WORD 0 < NON. < < C A S D E S A U T R E S S E P A R A T E U R S : < < ON N'AUTORISE QUE <GN> DERRIERE LES AUTRES SEPARATEURS !!! < GCONT: BYTE TNT;0 WORD GN < TEST D'UN <GN> SEUL ??? WORD FING1 < OK , TEST DE LA FIN DE PHRASE ??? WORD 0 < ERREUR. < < D E B U T D E P H R A S E : < O U S E P A R A T E U R S ' S E P 2 ' : < < ON AUTORISE ALORS UN GROUPE COMPLET : <GN><GV> !!! < GN2: BYTE TNTC;FRONT < ET MISE EN PLACE D'UNE FRONTIERE < DE RECURSIVITE ... WORD GN < RECONNAIT-ON LE NON-TERMINAL < <GN> ??? WORD GV1 < OUI , <GN> EST RECONNU , ALLONS < RECHERCHER L'EVENTUEL <GV>. WORD FING1 < <GV> EST ABSENT , ALORS LA < <PHRASE> DOIT ETRE TERMINEE ... WORD 0 < LA <PHRASE> N'ETANT PAS TERMINEE < APRES <GN> LORSQUE <GV> EST < ABSENT , IL Y A ERREUR. FING1: BYTE TFPH;0 < TEST DE FIN DE PHRASE ??? WORD 0 WORD FING2 < OK , LA FIN DE PHRASE < EST RECONNUE. WORD 0 < ERREUR , ON N'EST PAS SUR < LA FIN DE PHRASE. FING2: BYTE TFIN;0 < FIN DE CHEMIN DANS LA GRAMMAIRE , < POUR <PHRASE> NE CONTENAT < QUE <GN>. < < RECHERCHE DU <GV> DANS L'AXIOME : < GV1: BYTE TNT;0 < RECHERCHE DU <GV> DANS <PHRASE> ?? WORD GV < <GV> EST-IL LA ??? WORD FING1 < OUI , <GV> EST LA , ALLONS ALORS < TESTER LA PRESENCE DE LA FIN < DE <PHRAEE>. WORD 0 < ON N'EST PAS SUR LA FIN < DE <PHRASE> , IL Y A DONC ERREUR. < < P H R A S E C O N T E N U E < D A N S U N E R E C U R S I V I T E : < ( 2 ) < < <PHRASE2>::=<GN><GV>. < AXIO2: EQU $ BYTE TACT;TREL WORD TYPGRP < MEMORISATION 'DEBUT DE RELATIVE'. WORD AXIO2I < ET C'EST PARTI ... WORD GERRP < SUPPRESSION TYPE 'TREL'. WORD 0 AXIO2I: BYTE TNT;BOR < B E G I N R E C U R S I V I T E < ALLONS TESTER LA PRESENCE < DE <GN> DANS <PHRASE2>. WORD GN < EST-ON EN PRESENCE DE <GN> ??? WORD AXI2GV < AYANT RECONNU <GN> DANS LA < <PHRASE2> , ALLONS TESTER LA < RECONNAISSANCE DE <GV>. WORD 0 < ERREUR , <PHRASE2> ERRONNEE , < CAR IL LUI MANQUE SON <GV>. < < RECHERCHE DU <GV> DANS UNE <PHRASE2> : < AXI2GV: BYTE TNT;0 WORD GV < EST-ON EN PRESENCE D'1N <GV>. WORD GENDR < OUI , ALORS ALLONS FAIRE UNE < FIN DE RECURSIVITE. WORD 0 < NON <PHRASE2> ERRONNEE. < < G R O U P E N O M I N A L : < < <GN>::=<PRONOM PERSONNEL>('DONT'<PHRASE2> / < 'QUE'<PHRASE2> / < 'QUE'<PHRASE3> / < 'QUI'<PHRASE3> ) < <GN>::=<ARTICLE>((<ADVERBE>*)<ADJECTIF>*)<NOM>((<ADVERBE>*) < <ADJECTIF>*)/ < 'DONT'<PHRASE2>/ < 'QUE'<PHRASE2>/ < 'QUE'<PHRASE3>/ < 'QUI'<PHRASE3>. < GN: EQU $ BYTE TACT;TGN WORD TYPGR < MEMORISATION 'DEBUT DE <GN>'. WORD GNI < ET C'EST PARTI ... WORD GERR < SUPPRESSION TYPE 'TGN'. WORD 0 < < DISCRIMINATION ENTRE LES <GN> < REDUITS A UN <PRONOM PERSONNEL> ET LES AUTRES : < GNI: EQU $ BYTE TVID;0 WORD 0 WORD GNP < EST-ON EN PRESENCE D'UN < <PRONOM PERSONNEL> ???? WORD GNN < NON , ALORS EST-ON EN PRESENCE < D'UN <GN> COMPLET ???? WORD 0 < NON , LE <GN> PRESUME EST < INCOMPREHENSIBLE. < < RECHERCHE <PRONOM PERSONNEL> : < GNP: BYTE TERM;0 WORD PROPER < LE MOT COURANT DE <PHRASE> < EST-IL DANS LA CATEGORIE DES < PRONOMS PERSONNELS ??? WORD GNOP1 < OUI , EST-IL SUIVI DE 'DONT' ??? WORD GNOP2 < NON , EST-IL SUIVI DE 'QUE' ??? WORD GNOP3 < NON , EST-IL SUIVI DE 'QUI' ??? WORD GCONJ < NON , EST-IL SUIVI D'UNE < <CONJONCTION> ??? WORD GVIDE < NON , LE <PRONOM-PERSONNEL> < EST SEUL , ON ARRETE LA LE < PARCOURS DU CHEMIN DANS LA < GRAMMAIRE. WORD 0 < SINON , IL Y A ERREUR. < < RECHERCHE DES <GN> DE TYPE <ARTICLE><NOM> : < GNN: BYTE TERM;0 WORD ARTICL < LE MOT COURANT DE <PHRASE> < EST-IL DANS LA CATEGORIE < DES ARTICLES ??? WORD GNADV < CAS D'UN <ARTICLE> , EST-IL < SUIVI D'UN <ADVERBE> (OU < PLUSIEURS) ????? WORD GNADJ < PAS D'<ADVERBE> , MAIS PEUT- < ETRE UN OU PLUSIEURS <ADJECTIF> ??? WORD GNOM < NON , ALORS PEUT-ETRE UN <NOM> ??? WORD 0 < NI <ADVERBE> , NI <ADJECTIF> , < NI <NOM> : DONC ERREUR. < < TEST <ADVERBE> DANS UN <GN> : < GNADV: BYTE TERM;0 WORD ADVERB < LE MOT COURANT DE <PHRASE> < EST-IL DANS LA CATEGORIE < DES ADVERBES ???? WORD GNADJ < OUI , ALORS EST-IL SUIVI D'UN < OU PLUSIEURS <ADJECTIF> ???? WORD GNADV < PAS , OU PAS ENCORE D'<ADJECTIF>, < PEUT-ETRE ALORS UN AUTRE < <ADVERBE> ???? WORD 0 < NI <ADJECTIF> , NI <ADVERBE> , < ALORS , IL Y A ERREUR ... < < RECHERCHE DES <ADJECTIF> DANS <GN> : < GNADJ: BYTE TERM;0 WORD ADJECT < LE MOT COURANT DE <PHRASE> < EST-IL DANS LA CATEGORIE DES < ADJECTIFS ???? WORD GNOM < OUI , ALORS EST-IL SUIVI < D'UN <NOM> ??? WORD GNADJ < NON PAS , OU PAS ENCORE , < MAIS PEUT-ETRE Y-A-T'IL UN < AUTRE <ADJECTIF> ??? WORD 0 < NI <NOM> , NI <ADJECTIF> , ALORS < IL Y A ERREUR .... < < RECHERCHE DE <NOM> DANS <GN> : < GNOM: BYTE TERM;0 WORD NOM < LE MOT COURANT DE <PHRASE> EST-IL < DANS LA CATEGORIE DES NOMS ???? WORD GNOADV < OUI , ALORS , EST-IL SUIVI < D'UN <ADVERBE> ???? WORD GNOADJ < NON , PEUT-ETRE EST-IL SUIVI < D'UN <ADJECTIF> ??? WORD GNOP1 < NON , PEUT-ETRE EST-IL SUIVI < DU MOT 'DONT' ???? WORD GNOP2 < NON , PEUT-ETRE EST-IL SUIVI < PAR LE MOT 'QUE' ??? WORD GNOP3 < NON , PEUT-ETRE EST-CE LE < MOT 'QUI' ??? WORD GCONJ < NON , ALORS UNE <CONJONCTION> ??? WORD GVIDE < RIEN DE TOUT CELA , ON CONSI- < DERE QUE LE <GN> EST COMPLET. WORD 0 < < A N N U L A T I O N D E B U T D E G R O U P E : < GERR: BYTE TACTER;0 WORD TYPERR < RAZ INDICATEUR DEBUT DE GROUPE. GERRP: BYTE TACTER;0 WORD TYPERP < ARZ INDICATEUR DEBUT DE GROUPE. < < F I N D E C H E M I N : < GVIDE: BYTE TFIN;0 < ON ARRETE LA LE CHEMIN < DANS LA GRAMMAIRE. < < F I N D E R E C U R S I V I T E : < GENDR: BYTE TFIN;EOR < ON ARRETE LA LE CHEMIN DANS < LA GRAMMAIRE , EN FAISANT DE PLUS < UNE FIN DE RECURSIVITE DU < DISCOURS ... < < RECHERCHE DE <ADVERBE> APRES <NOM> : < GNOADV: BYTE TERM;0 WORD ADVERB < LE MOT COURANT DE <PHRASE> , < EST-IL UN ADVERBE ????? WORD GNOADJ < OUI , ALORS EST-IL SUIVI < D'UN <ADJECTIF> ???? WORD GNOADV < NON , ALORS PEUT-ETRE UN < AUTRE <ADVERBE> ??? WORD 0 < NON , NI <ADJECTIF> , NI < <ADVERBE> , IL Y A ERREUR .... < < RECHERCHE <ADJECTIF> APRES <NOM>(<ADVERBE>*) : < GNOADJ: BYTE TERM;0 WORD ADJECT < LE MOT COURANT DE <PHRASE> < EST-IL UN ADJECTIF ???? WORD GNOADJ < OUI , EST-IL ALORS SUIVI D'UN < AUTRE <ADJECTIF> ???? WORD GNOP1 < NON , ALORS EST-IL SUIVI < DU MOT PRECISE 'DONT' ??? WORD GNOP2 < NON , ALORS EST-IL SUIVI < DU MOT 'QUE' ??? WORD GNOP3 < NON , ALORS EST-IL SUIVI DU < MOT 'QUI' ??? WORD GCONJ < NON , ALORS UNE <CONJONCTION> ??? WORD GVIDE < NON , ON ADMET QUE LE <GN> < EST COMPLET , ON ARRETE LE < PARCOURS DU CHEMIN. WORD 0 < < R E C H E R C H E D E ' D O N T ' : < DONT: ASCI "DONT" GNOP1: BYTE TMOT;4 < EST-ON EN PRESENCE DU MOT WORD DONT,X < PRECISE 'DONT' ??? WORD AXIO2 < OUI , ALORS A-T'ON BIEN < 'DONT'<PHRASE2> ???? WORD 0 < NON , PSA DE <PHRASE2> : ERREUR .. < < P H R A S E C O N T E N U E < D A N S U N E R E C U R S I V I T E : < ( 3 ) < < <PHRASE3>::=<GV>. < AXIO3: EQU $ BYTE TACT;TREL WORD TYPGRP < MEMORISATION 'DEBUT DE RELATIVE'. WORD AXIO3I < ET C'EST PARTI ... WORD GERRP < SUPPRESSION TYPE 'TREL'. WORD 0 AXIO3I: BYTE TNT;BOR < B E G I N R E C U R S I V I T E WORD GV < EST-ON EN PRESENCE DE <GV> ??? WORD GENDR < OUI , ON ARRETE LA LE PARCOURS < DU CHEMIN DANS LA GRAMMAIRE , EN < FAISANT DE PLUS UNE FIN DE < RECURSIVITE. WORD 0 < NON ALORS ERREUR ... < < R E C H E R C H E D E ' Q U E ' : < QUE: ASCI "QUE " GNOP2: BYTE TMOT;TQUE+3 < EST-ON EN PRESENCE DU MOT WORD QUE,X < PRECISE 'QUE' ???? WORD AXIO2 < OUI , ALORS A-T'ON : < 'QUE'<PHRASE2> ??? WORD AXIO3 < NON , ALORS A-T'ON : < 'QUE'<PHRASE3> ??? WORD 0 < NON , ERREUR. < < R E C H E R C H E D E ' Q U I ' : < QUI: ASCI "QUI " GNOP3: BYTE TMOT;TQUI+3 < EST-ON EN PRESENCE DU MOT WORD QUI,X < PRECISE 'QUI' ???? WORD AXIO3 < OUI , A-T'ON BIEN ALORS < 'QUI'<PHRASE3> ???? WORD 0 < NON , ERREUR .... < < < G R O U P E V E R B A L > : < < <GV>::=<VERBE> , < <GV>::=<VERBE><GN> , < <GV>::=<VERBE><ADVERBE>* , < <GV>::=<VERBE><ADVERBE>*<GN> , < <GV>::=<VERBE><ADVERBE>*'DE'<GN> , < <GV>::='NE'<VERBE>'PAS' , < <GV>::='NE'<VERBE>'PAS'<ADVERBE>* < <GV>::='NE'<VERBE>'PAS'<ADVERBE>*<GN> , < <GV>::='NE'<VERBE>'PAS'<ADVERBE>*'DE'<GN> , < <GV>::='NE'<VERBE><GN>'QUE'<GN>. < GV: EQU $ BYTE TACT;TGV WORD TYPGR < MEMORISATION 'DEBUT DE <GV>'. WORD GVI < ET C'EST PARTI ... WORD GERR < SUPPRESSION TYPE 'TGN'. WORD 0 < < DISCRIMINATION ENTRE LES ASSERTIONS < ET LE NEGATIONS : < GVI: EQU $ BYTE TVID;0 WORD 0 WORD ASSERT < EST-CE UNE ASSERTION ??? WORD NEGAT < NON , ALORS EST-CE UNE NEGATION ? WORD 0 < NIN ASSERTION , NI NEGATION , < ALORS ERREUR !!! < < T E S T P H R A S E A S S E R T I V E : < ASSERT: BYTE TERM;0 WORD VERBE < LE MOT COURANT DE <PHRASE> < EST-IL UN VERBE ??? WORD ASSADV < OUI , ALORS EST-IL SUIVI < D'UN OU PLUSIEURS <ADVERBE> ??? WORD ASSGN < NON , ALORS EST-IL SUIVI D'UN < <GN> ???? WORD GCONJ < NON , ALORS UNE <CONJONCTION> ??? WORD GVIDE < NON , NI <ADVERBE> , NI < <GN> , ON ARRETE ICI LE < PACOURS DU CHEMIN ... WORD 0 < < RECHERCHE D'UN <ADVERBE> DERRIERE UN <VERBE> : < ASSADV: BYTE TERM;0 WORD ADVERB < LE MOT COURANT DE <PHRASE> < EST-IL UN <ADVERBE> ??? WORD ASSDE < NON , PAS DE <GN> , ALORS < EST-IL SUIVI PAR 'DE' ??? WORD ASSGN < OUI , ALORS EST-IL SUIVI DE <GN>? WORD ASSADV < NON PAS 'DE' , ALORS PEUT-ETRE < UN AUTRE <ADVERBE> ???? WORD GCONJ < NON , ALORS UNE <CONJONCTION> ??? WORD GVIDE < LE <VERBE><ADVERBE> N'EST NI < SUIVI DE <GN> , NI DE 'DE' , < NI D'UN AUTRE <ADVERBE> ; ON < ARRETE LE PARCOURS DU CHEMIN ... WORD 0 < < RECHERCHE DE 'DE' DERRIERE <VERBE>(<ADVERBE>) : < DE: ASCI "DE" ASSDE: BYTE TMOT;2 WORD DE,X < LE MOT COURANT DE <PHRASE> < EST-IL LE MOT PRECISE 'DE' ???? WORD ASSGN < OUI , ALORS EST-IL SUIVI < DE <GN> ??? WORD 0 < NON PAS DE <GN> DERRIERE < <VERBE>(<ADVERBE>)'DE' ... < ALORS ERREUR .... < < RECHERCHE D'UN <GN> DERRIERE UN <VERBE>... : < ASSGN: BYTE TNT;0 WORD GN < EST-ON EN PRESENCE DE <GN> ???? WORD GVIDE < OUI , ON ARRETE ICI LE PARCOURS < DU CHEMIN ... WORD 0 < < T E S T P H R A S E N E G A T I V E : < NE: ASCI "NE" NEGAT: BYTE TMOT;2 WORD NE,X < LE MOT COURANT DE <PHRASE> < EST-IL LE MOT PRECISE 'NE' ??? WORD NEGV < OUI , EST-IL SUIVI ALORS < D'UN <VERBE> ??? WORD 0 < NON PAS DE <VERBE> , ERREUR .... < < RECHERCHE D'UN <VERBE> DERRIERE 'NE' : < NEGV: BYTE TERM;0 WORD VERBE < LE MOT COURANT DE <PHRASE> < EST-IL UN VERBE ??? WORD NEGP < OUI , ALORS EST-IL SUIVI < DU MOT PRECISE 'PAS' ???? WORD NEGGN1 < NON , ALORS EST-IL SUIVI < D'UN <GN> ??? WORD 0 < NI 'PAS' , NI <GN> , ALORS < IL Y A ERREUR ... < < RECHERCHE D'UN <GN> DERRIERE 'NE'<VERBE> : < NEGGN1: BYTE TNT;0 WORD GN < EST-ON EN PRESENCE D'UN <GN> ???? WORD NEGQUE < OUI , ALORS EST-IL SUIVI D'UN < 'QUE' ???? WORD 0 < NON PAS DE 'QUE' : ERREUR ... < < RECHERCHE DE 'QUE' DERRIERE 'NE'<VERBE><GN> : < NEGQUE: BYTE TMOT;3 WORD QUE,X < LE MOT COURANT DE <PHRASE> < EST-IL LE MOT PRECISE 'QUE' ??? WORD NEGGN < OUI , ALORS EST-IL SUIVI < D'UN 2EME <GN> ???? WORD 0 < NON PAS DE 2EME <GN> : ERREUR ... < < RECHERCHE D'UN <GN> DERRIERE 'NE'<VERBE>'PAS' , OU < DERRIERE 'NE'<VERBE><GN>'QUE' : < NEGGN: BYTE TNT;0 WORD GN < EST-ON EN PRESENCE D'UN <GN> ??? WORD GVIDE < OUI , LAORS ON ARRETE LE < PARCOURS DU CHEMIN ... WORD 0 < < RECHERCHE D'UN 'PAS' DERRIERE 'NE'<VERBE> : < PAS: ASCI "PAS " NEGP: BYTE TMOT;3 WORD PAS,X < LE MOT COURANT DE <PHRASE> < EST-IL LE MOT PRECISE 'PAS' ??? WORD NEGADV < OUI , ALORS EST-IL SUIVI < D'UN <ADVERBE> ??? WORD NEGGN < NON , ALORS EST-IL SUIVI < D'UN <GN> ??? WORD GVIDE < NON , ON ARRETE ICI LE < PARCOURS DU CHEMIN ... WORD 0 < < RECHERCHE D'UN <ADVERBE> DERRIERE 'NE'<VERBE>'PAS' : < NEGADV: BYTE TERM;0 WORD ADVERB < LE MOT COURANT DE <PHRASE> < EST-IL UN <ADVERBE> ???? WORD ASSDE < OUI , ALORS EST-IL SUIVI < DE 'DE'<GN> ??? WORD NEGGN < NON , ALORS EST-IL SUIVI < DE <GN> SEUL ??? WORD NEGADV < NON , ALORS PEUT-ETRE UN < AUTRE <ADVERBE> ??? WORD GCONJ < NON , ALORS UNE <PROPOSITION> ??? WORD GVIDE < NON , ON ARRETE ICI LE < PARCOURS DU CHEMIN .... WORD 0 < < R E C H E R C H E D E S C O N J O N C T I O N S : < GCONJ: BYTE TACT;TCONJ WORD TYPGR < MISE EN PLACE D'UN DEBUT DE < GROUPE CONJONCTIF A PRIORI. WORD GCONJI < TEST CONJONCTION ??? WORD GERR < NON , ARZ DU TYPE 'TCONJ'. WORD 0 GCONJI: BYTE TERM;0 WORD CONJ < EST-ON EN PRESENCE D'UNE < CONJONCTION ??? WORD GCI WORD 0 GCI: BYTE TNT;0 WORD GN1 < ET ON ON RE-RENTRE DANS LA < GRAMMAIRE .... WORD GVIDE < FIN DE CHEMIN. WORD 0 PAGE < < < V A L I D A T I O N D E L ' I M P L A N T A T I O N : < < PILE: VAL 'FF0-6 < RETOUR SUR LA PILE DE SODOME. X12: EQU ZERO+PILE-LTNI-LTNI X10: VAL X12-$ ZEROV: EQU ZERO+X10 < ERREUR D'ASSEMBLAGE SI MAUVAISE < IMPLANTATION. DZS X10+1 < PAR PURE PROPRETE. EOT #SIP GEN PROCESSEUR#