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