summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Vazquez <christian.vazquez@epfl.ch>2011-05-18 05:38:32 +0000
committerChristian Vazquez <christian.vazquez@epfl.ch>2011-05-18 05:38:32 +0000
commitb88deff7c45593bb6ad0780b70ce929346056aae (patch)
tree2bc34c2444052e3cf4595cdd927c4fee2ab0c845
parentdc2a0999d29f61582a795ec66d89d05888a27bdb (diff)
downloadvhc-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.cc65
-rw-r--r--src/main/Parser.h42
-rw-r--r--src/main/simulation.cc7
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