Resultados de la búsqueda a petición "boost-spirit"

2 la respuesta

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 ...

2 la respuesta

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 ...

1 la respuesta

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 ...

1 la respuesta

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 ...

1 la respuesta

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 (): ...

1 la respuesta

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, ...

4 la respuesta

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 << ...

10 la respuesta

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 ...

2 la respuesta

¿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 ...

4 la respuesta

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 ...