Skip to content
Prev 174709 / 398506 Next

If statement generates two outputs

Wacek Kusnierczyk wrote:
This is probably due to that in the gram.y file :

case ':':
    if (nextchar(':')) {
        if (nextchar(':')) {
        yylval = install(":::");
        return NS_GET_INT;
        }
        else {
        yylval = install("::");
        return NS_GET;
        }
    }
    if (nextchar('=')) {
        yylval = install(":=");
        return LEFT_ASSIGN;
    }
    yylval = install(":");
    return ':';
    
which gives a meaning to ":=", so that parsing x := 2 makes sense.

 > parse( text = "x := 2" )
expression(x := 2)
attr(,"srcfile")
<text>

Romain