J'expérimente avec la bibliothèque Scala FastParsers et je suis étudiant macro du expansion code suivant:Impossible d'obtenir la sémantique de cette boucle en macro expansion
val trueValue = "true".toCharArray
val falseValue = "false".toCharArray
object KParser1 {
import fastparsers.framework.implementations.FastParsersCharArray._
val kparser = FastParsersCharArray {
def func1: Parser[Any] = func1 | falseValue
}
}
entier est there expansion mais un morceau de code de là me dérange vraiment
while$2() {
if (inputpos$macro$2.$less(inputsize$macro$3).$amp$amp(input$macro$1(inputpos$macro$2).$eq$eq(' ').$bar$bar(input$macro$1(inputpos$macro$2).$eq$eq('\t')).$bar$bar(input$macro$1(inputpos$macro$2).$eq$eq('\n')).$bar$bar(input$macro$1(inputpos$macro$2).$eq$eq('\r'))))
{
inputpos$macro$2 = inputpos$macro$2.$plus(1);
while$2()
}
else
()
};
il ressemble le code qui saute des espaces de flux d'entrée, mais je ne peux pas déduire ce qui est while$2
exactement: est-il y a déclaré que Unit => Unit
et appelé automatiquement ou est il une certaine fonction prédéfinie avec le type Unit => Any => Any
?
'tout 2' $ ressemble à des détails de mise en œuvre de la boucle selon [cette discussion liste de courrier] (https://groups.google.com/forum/#!topic/scala-language/jmIouhGYLRg). – ForNeVeR