Resultados de la búsqueda a petición "boost-spirit"
C ++ / Boost: escribir un reemplazo de sscanf más potente
Quiero escribir una función en C ++ para reemplazar el sscanf de C que asigna las coincidencias al iterador. Básicamente, quiero algo como: string s = "0.5 6 hello"; std::vector<boost::any> any_vector; sscanv(s, "%f %i %s", any_vector); cout ...
Minimizing boost :: spirit compile times
¿Alguna idea para reducir el impulso :: tiempo de compilación de espíritu? Acabo de portar un analizador flexible para impulsar :: espíritu. El EBNF tiene alrededor de 25 reglas. El resultado funciona bien y el rendimiento en tiempo de ...
Combine dinámicamente las reglas Boost.Spirit.Qi en tiempo de ejecución (número arbitrario de alternativas)
Me preguntaba si hay una manera en Boost.Spirit.Qi para combinar dinámicamente un número arbitrario de reglas en tiempo de ejecución. El funcionamiento interno de Boost.Spirit sigue siendo un misterio para mí, pero dado que las reglas ...
Boost.Spirit: informe de errores de Lex + Qi
Estoy escribiendo un analizador para archivos de configuración bastante complicados que usan sangría, etc. Decidí usar Lex para dividir la entrada en tokens, ya que parece facilitar la vida. El problema es que no puedo encontrar ningún ejemplo ...
No puedo obtener el valor de cadena de un token
ntento implementar un Lexer para un pequeño lenguaje de programación con Boost Spirit. Tengo que obtener el valor de un token y obtengo una excepción bad_get: terminate llamado después de lanzar una instancia de 'boost :: bad_get' what (): ...
Boost Spirit: "¿Las acciones semánticas son malas"?
Leyendo y viendo esta presentación:http: //boost-spirit.com/home/2011/06/12/ast-construction-with-the-universal-tree [http://boost-spirit.com/home/2011/06/12/ast-construction-with-the-universal-tree/] He descubierto esta declaración; básicamente, ...
boost :: espíritu :: qi
Considere el siguiente código: (Boost.Spirit 2.5.1) qi::parse(str.begin(), str.end(), (+qi::alpha)[[](const string& s){cout << s<< '\n';}] >> (*(qi::char_(',') | qi::char_('\''))) >> qi::uint_[[](int integer){cout << integer << ...
Boolean expresión (gramática) analizador en c ++
Quiero analizar una expresión booleana (en C ++). Formulario de entrada: a and b xor (c and d or a and b); Solo quiero analizar esta expresión en un árbol, conociendo la regla de precedencia (no, y, xor o). Entonces, la expresión anterior ...
¿Cómo agregar qi :: símbolos en la gramática <Iterator, double ()>?
Estoy tratando de usar la biblioteca Boost.Spirit (V. 2.5) para crear una mini calculadora. Características que quiero implementar: - cálculo básico (+, -, /, *), que funciona - algunas funciones (como min, max), que también funciona - declarar ...
Detección de los tipos de parámetros en una acción semántica de Spirit
Caso general: no puedo entender por qué mis acciones de gramática / semántica Spirit no se están compilando. A veces, el compilador se quejará de las incompatibilidades de asignación o tipo y no tengo idea de lo que está mal. El problema ocurre ...