Bonsoir,
A la découverte de boost::spirit je me suis dit qu'un outil comme celui là ne pourrait qu'accélérer le développement de mes parsers. Mais je n'arrive pas à faire ce dont j'ai besoin. A terme je voudrais faire un parsers de fonction ( C-like ) que je pourrait appeler dans mon code. Les fonctions étant entrées dynamiquement... Bref je n'en suis pas encore là !
Je voudrais simplement appeler une fonction voici mon parser issus d'un exemple que j'essaye d'upgrader :
Le problème vient de la ligne qui contient Math:
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58ow(). En effet je ne peux pas faire cela puisque mon Pow prend soit un float, soit un double ou soit un long double. _val est de type : boost::phoenix::actor< boost::spirit::argument< 0 > >. J'ai essayé d'évalué la lambda expression avec l'opérateur (). Mais rien n'y fait je n'arrive toujours pas à retrouver la valeur.
Voilà mon problème. Les opérateurs de base on été surchargées pour les lambdas (+, -, <<, ...). Mais comment faire pour récupérer les valeurs de mes arguments, pour les utiliser avec des types de base du C++ ?

 

 
		
		 
         
 

 
			
			

 
			 
   
 


 boost::spirit utilisation des arguments
 boost::spirit utilisation des arguments
				 Répondre avec citation
  Répondre avec citation

 
  
 

 
    
						
Partager