IV-B. Actions sémantiques▲
IV-B-1. Avant d'entamer...▲
actions fournies
intro à boost.phoenix.bind
helpers phoenix: construct_<T>
closure et définition de la closure utilisée pour le parsing RIB
Sélectionnez
struct RibClosure : boost::spirit::closure<RibClosure, std::string>
{
member1 str;
};
struct Syntax : public grammar<Syntax, RibClosure::context_t>
//...
typedef rule<ScannerT, RibClosure::context_t> rule_t;
// Rules...IV-B-2. Règles générales▲
String
Sélectionnez
ribString = '"' >> (+(alnum_p | '.'))[ribString.str = construct_<std::string>(arg1, arg2)] >> '"';vecteurs
Sélectionnez
// WIP...IV-B-3. Options▲
Display
Sélectionnez
display = "Display" >> ribString[bind(&Scene::setTargetName)(var(self.scn), ribString.str)]
>> ribString
>> ribString;Projection, Format
IV-B-4. Attributs▲
LightSource, Color, Surface, Sides
IV-B-5. Transformations▲
Translate, Rotate
IV-B-6. Primitives géométriques▲
Sphere


