Sunday 25 September 2016

Actos met 185






+

A mi edad avanzada, todavía estoy feliz de aprender nuevas cosas. En mi nuevo trabajo en Fitbit. Se comparte ninguna de ese código, por supuesto, pero yo podría publicar algo de código en Python que aquí el tiempo, y / o algún código que muestra el uso de tampones de protocolo en Scala o Java. Mientras tanto, en uno de mis primaria hemos decidido aprender a jugarlo. Así que hace un mes me compró una guitarra, y se han recogerlo poco a poco por mi cuenta, acordes y un poco de dedo-cosecha, el desarrollo de callos de aprendizaje, y tropezando a través Phil Ochsll estará listo para jugar en público. No es demasiado público, pero en la semana cantar, entre amigos. No renunciar a mi trabajo del día En mi artículo sobre combinadores de analizadores sintácticos. He desarrollado un analizador que analiza sumas de enteros simples y productos en un árbol de sintaxis interna. En este artículo, enfermedad hace un evaluador simple que toma un árbol, tales como la sintaxis analiza y calcula el valor de la expresión. Este es el tipo de cosas que en Java que podría hacer uso de la visitor. pero Scala (al igual que algunos otros lenguajes funcionales) tiene un mecanismo de gran alcance llamada que hace que este patrón un tanto compleja innecesaria en la mayoría de los casos, y nos permite crear código bastante conciso. Como referencia, la sintaxis creada en el último artículo fue dada por: Esto es un poco más código que me gusta hacer sólo para obtener la primera prueba para compilar y fallar, pero sobre todo sus decisiones razonablemente sencillos de organización de diseño. El objeto acompañante es el punto de entrada principal y se ha sobrecargado métodos parseExpression principalmente para la prueba, así como un parsePhrase (que podría haber sido mejor llamado simplemente analizar) llamado por ellos y es probable que se llamará en su uso en producción. El rasgo ExpressionSyntax tiene una expresión del rasgo sellada cuyas extensiones representará el árbol de sintaxis abstracta del análisis sintáctico. Hice la primera extensión de modo que pudiera ser referenciado desde la primera prueba. La prueba de que, por supuesto, falla como pruebas deben en la primera ejecución, dando scala. NotImplementedError: una aplicación no se encuentra. Para hacer que el paso de la prueba, se implementa el primer analizador extremadamente simple: En los ExpressionParsers: pasa la prueba. Como sabemos el analizador de expresiones va a ser un poco más complejo, así refactorizar inmediatamente para sacar este sencillo programa de análisis a un apropiado nombre de uno: Incluso esta simple analizador merece un poco de explicación, y ya supone un combinador analizador. El supuesto es sólo un java. util. String y la. R produce una expresión regular, que en Scala es un scala. util. matching. Regex. es un combinador analizador. Para eso se necesita un poco de explicación, que los malos tratar de conseguir en la tarde cuando llegamos a los otros combinadores de analizadores sintácticos. En cualquier caso, se trata de un método, que en Scala a diferencia de muchos idiomas pueden tener nombres como esto. Parece theres alguna conversión implícita pasando aquí, que puede llegar a ser muy confuso. El método r es en realidad define en scala. collection. immutable. StringLike. por lo que en algún lugar debe haber una conversión implícita que ya convirtió la cadena a una de Cuerda. y este método se convierte en una expresión regular. Del mismo modo, el método se define en una ParserT clase abstracta en util. parsing. combinator. Parsers. por lo que en algún lugar una conversión implícita se ha convertido en una expresión regular del analizador. No he profundizado en la fuente lo suficiente para saber donde se definen estas implicits. Una expresión regular es, por supuesto, transformado de forma específica en un RegexParser. Antes de profundizar en los combinadores de analizadores sintácticos, Wes asegurarse de que maneja los números negativos Añadir otra prueba:




No comments:

Post a Comment