diff options
author | Christian Vazquez <christian.vazquez@epfl.ch> | 2011-05-18 05:38:32 +0000 |
---|---|---|
committer | Christian Vazquez <christian.vazquez@epfl.ch> | 2011-05-18 05:38:32 +0000 |
commit | b88deff7c45593bb6ad0780b70ce929346056aae (patch) | |
tree | 2bc34c2444052e3cf4595cdd927c4fee2ab0c845 | |
parent | dc2a0999d29f61582a795ec66d89d05888a27bdb (diff) | |
download | vhc-b88deff7c45593bb6ad0780b70ce929346056aae.tar.gz vhc-b88deff7c45593bb6ad0780b70ce929346056aae.tar.bz2 vhc-b88deff7c45593bb6ad0780b70ce929346056aae.zip |
Crée la classe Parser et le fichier d'essai simulation.cc
-rw-r--r-- | src/main/Parser.cc | 65 | ||||
-rw-r--r-- | src/main/Parser.h | 42 | ||||
-rw-r--r-- | src/main/simulation.cc | 7 |
3 files changed, 109 insertions, 5 deletions
diff --git a/src/main/Parser.cc b/src/main/Parser.cc index e10f182..bad70b7 100644 --- a/src/main/Parser.cc +++ b/src/main/Parser.cc @@ -7,16 +7,75 @@ #include "Parser.h" +balise Parser::system = "<System>"; +balise Parser::accelerator ="<Accelerator>"; +balise Parser::constants ="<constants>"; +balise Parser::curvedElement ="<CurvedElement>"; +balise Parser::dipole ="<Dipole>"; +balise Parser::fodo ="<FODO>"; +balise Parser::particle ="<Particle>"; +balise Parser::quadrupole ="<Quadrupole>"; +balise Parser::straightElement ="<StraightElement>"; +balise Parser::systemCl = "<\System>"; +balise Parser::acceleratorCl ="<<Accelerator>"; +balise Parser::constantsCl ="<\constants>"; +balise Parser::curvedElementCl ="<\CurvedElement>"; +balise Parser::dipoleCl ="<\Dipole>"; +balise Parser::fodoCl ="<\FODO>"; +balise Parser::particleCl ="<\Particle>"; +balise Parser::quadrupoleCl ="<\Quadrupole>"; +balise Parser::straightElementCl ="<\StraightElement>"; + Parser::Parser(string file) { // TODO Auto-generated constructor stub } -Parser::~Parser() { - // TODO Auto-generated destructor stub +Parser::extract(string file) { + + //met le nom qu'on rajoute après le programme du fichier dans une string + string nameOfFile; + getline(cin, nameOfFile); + + //on déclare une flot d'entrée, ainsi qu'une sortie + ifstream entry; + //TODO + ofstream exit; + + //TODO est-ce qu'un xml est un binaire? auquel cas rajouter l'argument ios::in|ios::binary + //associe le flot d'entrée au fichier donné par l'utilisateur + entry.open(nameOfFile.c_str()); + + //test si l'association a bien pu se faire + if(not entry.fail()){ + //met le premier mot du fichier dans une string temporaire + string tmp = readOneWord(entry); + //TODO encore plein de choses à faire + }else{ + //si l'association du flot d'entrée avec le fichier n'a pas pu se faire, on lance une exception + throw; //TODO une erreur + } } -Parser::extract(string file) { +//TODO use exceptions! +Parser::readOneChar(ifstream& file){}; +Parser::readOneInt(ifstream& file){}; +Parser::readOneDouble(ifstream& file){}; +Parser::readOnePosition(ifstream& file){}; +Parser::readOneBalise(ifstream& file){}; +Parser::findNextBalise(ifstream& file){}; +Parser::jumpComment(ifstream& file){}; +Parser::readFile(ifstream& file){}; + +Parser::readOneWord(ifstream& file) { + string tmp; + file>>tmp; + return tmp; +} +Parser::readOneLine(ifstream& file){ + string tmp; + getline(file, tmp); + return tmp; } diff --git a/src/main/Parser.h b/src/main/Parser.h index 311ddd1..dd153be 100644 --- a/src/main/Parser.h +++ b/src/main/Parser.h @@ -4,17 +4,55 @@ * Created on: 11 mai 2011 * Author: christian */ - +#include <iostream> #include <string> +#include <vector> +#include <ifstream> +#include <ofstream> +#include "Vector3D.h" #ifndef PARSER_H_ #define PARSER_H_ +typedef balise string; +typedef balStat static balise; + class Parser { public: Parser(string file); - virtual ~Parser(); + virtual ~Parser(){}; void extract(string file); +private: + balStat system; + balStat accelerator; + balStat constants; + balStat curvedElement; + balStat dipole; + balStat fodo; + balStat particle; + balStat quadrupole; + balStat straightElement; + + balStat systemCl; + balStat acceleratorCl; + balStat constantsCl; + balStat curvedElementCl; + balStat dipoleCl; + balStat fodoCl; + balStat particleCl; + balStat quadrupoleCl; + balStat straightElementCl; + + char readOneChar(ifstream& file); + int readOneInt(ifstream& file); + double readOneDouble(ifstream& file); + Vector3D readOnePosition(ifstream& file); + balise readOneBalise(ifstream& file); + balise findNextBalise(ifstream& file); + void jumpComment(ifstream& file); + string readOneWord(ifstream& file); + string readOneLine(ifstream& file); + string readFile(ifstream& file); }; #endif /* PARSER_H_ */ diff --git a/src/main/simulation.cc b/src/main/simulation.cc new file mode 100644 index 0000000..11804ab --- /dev/null +++ b/src/main/simulation.cc @@ -0,0 +1,7 @@ +/* + * simulation.cc + * + * Created on: 16 mai 2011 + * Author: christian + */ +//On utilise ce fichier pour écrire dedans avec la classe parseur |