Au lancement, le parser charge un certain nombre de
module. Il envoie la chaîne "Starting Centaur Specialized Parser
Loop" lorsqu'il est pret.
Dans ce document, les chaines sont délimitées par des simples
quotes (').
Remarques :
Commandes | Description | ||||||||
---|---|---|---|---|---|---|---|---|---|
'print_version' | Utiliser pour obtenir la version du parser ($Id: vernac.html,v 1.1 1998/11/23 14:29:08 plequang Exp $ cvs) | ||||||||
'parse_string' <reqid>
[<PHYLUM>] <chaine> '&& END--OF--DATA' | Utiliser pour analyser une chaine Retour : parsed, syntax_error 'parse_file' <reqid> '"'<nom_fichier>'".' | Pour analyser un fichier complet | Retour : parsed, syntax_error 'add_path' <reqid> '"'<path>'"' | Ajout/Extension du chemin de recherche des modules
externes/fichiers de syntax (??) | Retour : pas de retour 'load_syntax_file' <reqid> <ident>'.' | Equivalent a "Require <ident> | Cette commande n'est jamais utilisée par ctcoq. Elle n'est utilisée que dans le fichier d'initialisation du parser et le fichier .vernacrc de l'utilisateur. Retour : pas de retour 'quiet_parse_string' | <chaine> '&& END--OF--DATA'. Analyse une chaine sans renvoyer le résultat. Utilisé
pour initialiser les "parsing tables" après le
chargement de nouveaux modules. | Retour : |
Les messages en retour ont la structure générale suivante :
! Certains messages n'ont pas cette structure, notemment certains messages d'erreurs.
'message'
'parsed'
<reqid>
'***'
<résultat de l'analyse sous forme de
protocole d'arbre>
'e'
<nom de l'arbre>
'message'
'syntax_error'
<identificateur de requète>
'***'
Suite à une requète 'parse_string' | 'At location <position> Syntax error: <message d'erreur>' |
Suite à une requète 'parse_file', fichier lisible |
'Error with file' <nomfic> 'At location <position> Syntax error: <message d'erreur>' |
Suite à une requète 'parse_file', fichier illisible | 'Error with file' <nomfic> 'OS error:'<message d'erreur |
'E-n-d---M-e-s-s-a-g-e'
'message'
'file_error'
<identificateur de requete>
'***'
...
'E-n-d---M-e-s-s-a-g-e'
error while loading syntax module <module_name> :
Library.intern_module Can't find module <module_name> on loadpath |
Ce protocole permet de transmettre un arbre uniquement grâce a
une succession de chaine qu'on empile pour pouvoir ensuite reconstituer
l'arbre.
Pour une description générale, voir le rapport technique
numéro 165, Aout 1994 : "Distributed programming
environments : an example of a message protocol".
Un arbre est composé de 2 types de noeud :
Format des opérateurs : <langage>$<opérateur>
Les noeuds sont transmis de la façon suivante :
Pour transmettre un noeud avec 3 fils atomiques, on procède
de la facon suivante :
La fin de l'arbre se fait par l'emvoi de la chaine 'e', suivi du nom de l'arbre (non utilise).
Remarque : qu'est ce qu'on fait des annotations ?