Visual Servoing Platform  version 3.0.0
vpSkipio.cpp
1 /****************************************************************************
2  *
3  * This file is part of the ViSP software.
4  * Copyright (C) 2005 - 2015 by Inria. All rights reserved.
5  *
6  * This software is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU General Public License
8  * ("GPL") version 2 as published by the Free Software Foundation.
9  * See the file LICENSE.txt at the root directory of this source
10  * distribution for additional information about the GNU GPL.
11  *
12  * For using ViSP with software that can not be combined with the GNU
13  * GPL, please contact Inria about acquiring a ViSP Professional
14  * Edition License.
15  *
16  * See http://visp.inria.fr for more information.
17  *
18  * This software was developed at:
19  * Inria Rennes - Bretagne Atlantique
20  * Campus Universitaire de Beaulieu
21  * 35042 Rennes Cedex
22  * France
23  *
24  * If you have questions regarding the use of this file, please contact
25  * Inria at visp@inria.fr
26  *
27  * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
28  * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
29  *
30  * Description:
31  * Le module "skipio.c" contient les procedures d'analyse
32  * syntaxique du fichier "source" qui permettent de traiter
33  * les commandes inconnues.
34  *
35  * Authors:
36  * Jean-Luc CORRE
37  *
38  *****************************************************************************/
39 
40 
41 
42 
43 
44 
45 #include <visp3/core/vpConfig.h>
46 
47 #ifndef DOXYGEN_SHOULD_SKIP_THIS
48 #include <visp3/robot/vpMy.h>
49 #include <visp3/robot/vpToken.h>
50 #include <visp3/robot/vpLex.h>
51 #include <visp3/robot/vpSkipio.h>
52 #include <stdio.h>
53 /*
54  * La procedure "skip_cmd" saute les structures d'une commande
55  * jusqu'a reconnaitre le debut d'une nouvelle commande.
56  * Entree :
57  * f Fichier en sortie.
58  */
59 void skip_cmd (void)
60 {
61  int token;
62 
63  fprintf (stderr, "\n$ ");
64  fwrite (mytext, (size_t)mylength, 1, stderr);
65  while ((token = lexecho (stderr, '$')) != T_EOF && token != '$') {};
66  unlex ();
67 }
68 
69 /*
70  * La procedure "skip_keyword" saute les structures des articles
71  * jusqu'a reconnaitre le mot cle de jeton "token".
72  * Entree :
73  * token Jeton du mot cle a reconnaitre.
74  * err Message d'erreur si le mot cle n'est pas reconnu.
75  */
76 void skip_keyword (int token, const char *err)
77 {
78  int t;
79 
80  switch (t = lex ()) {
81  case T_IDENT : /* saute le mot cle inconnu */
82  while ((t = lex ()) != 0){
83  switch (t) {
84  case '$' : /* nouvelle commande */
85  case T_EOF : /* fin de fichier */
86  lexerr ("start", err, NULL);
87  break;
88  default :
89  if (t == token) return;
90  break;
91  }
92  }
93  break;
94  default :
95  if (t == token) return;
96  break;
97  }
98  lexerr ("start", err, NULL);
99 }
100 
101 #endif
102