Classes pour la communication avec le parser vernac

Introduction

Les classes suivantes sont utilisées pour communiquer avec le parser Vernac depuis une application. Elles permettent d'envoyer des requètes et de lire les messages de retour en les structurant selon le type de message. Description des requètes et des messages échangés avec Vernac

VernacProtocolWriter

Fournit des méthodes pour envoyer des requètes au parser par l'intermédiaire d'un flux de sortie connecté sur le flux d'entrée du parser.

class vernacProtocolWriter
Champs
PrintWriter out

Le flux sur lequel on envoie les requètes au parser.

Constructeur
VernacprotocolWriter(PrintWriter out)
Méthodes
void writePrintVersion()

Exception: :IOException, Si erreur d'écriture sur le flux.

int writeParseString(String str, String phylum)

Return: l'identificateur de cette requète

Exception: :IOException, Si erreur d'écriture sur le flux.

int writeParseFile(String filename)

Return: l'identificateur de cette requète

Exception: :IOException, Si erreur d'écriture sur le flux.

VernacProtocolReader

Fournit une méthode pour lire et interpréter les messages sur un flux d'entrée connecté sur le flux de sortie du parser. Le texte du message est transformé en un objet VernacMessage.

class VernacProtocolReader
Champs
BufferedReader in

Le flux depuis lequel on lit les messages

Constructeur
VernacProtocolReader(BufferedReader in)
Methodes
VernacMessage readMessage()

Lit le prochain message sur le flux d'entrée et retourne un objet VernacMessage associé. Lorsque le message comprend un arbre, on fait appelle a la methode readTree de la classe aioli.vtp.Proto pour convertir le protocole d'arbre en un objet aiolo.vtp.Tree

VernacMessage

Cet objet représente le résultat d'un requète envoyée au parser. Les informations contenues varient selon le type de la requète et son resultat, qui peut être un arbre de syntax, un message d'erreur de syntaxe, la version du parser, une autre erreur. Les champs non utiliés doivent être fixés à null lors de la création de l'objet.

class VernacMessage
Champs
int type

type du message.

int reqId

identificateur de requete du message.

static int PARSED

type du message suite a une requete parse effectuée avec succès.

static int PARSED_WITH_ERROR ???

indique qu'une chaine chaine a été parsée mais contient des erreurs. Le message contient un arbre de syntaxe incomplet.

static int SYNTAX_ERROR

type du message suite a une requete parse ayant causée une erreur de syntax.

static int VERSION

type du message suite a une requete print_version.

static int ERROR

type du message suite a une erreur non gérée.

aioli.vtp.Tree tree

Arbre de syntaxe de la chaine ou du fichier parsé avec succés.

String errorMessage

Message d'erreur (de syntaxe ou autre).

Location errorLocation

position de l'erreur de syntaxe.

Constructeurs
VernacMessage(int type, int reqId, String errorMessage, Tree syntaxTree, Location errorLocation)
Methodes
int getType()

Retourne le type du mesage.

Tree getTree()

Retourne l'arbre de syntaxe resultat d'une requete parse.

Location getErrorLocation()

Retourne la positin de l'erreur de syntaxe.

Location getErrorMessage()

Retourne le message d'erreur (de syntaxe out autre). parse.

Location

Postition (debut et fin) d'une séquence dans une autre séquence. Utilisée pour localiser une erreur de syntaxe dans une chaîne ou un fichier.

class Location
Champs
int beginCaret

Position de début

int endCaret

Position de fin

Constructeurs
Location(int beginCaret, int EndCaret)
Methodes
int getBeginCaret()

Retourne la position de début.

int getEndCaret()

Retourne la position de fin.

String toString()

Retourne la position dans une chaine utilisable pour l'affichage


Pascal Lequang INRIA Sophia Antipolis
Last modified: Fri Nov 20 16:00:40 MET 1998