por acaso eu fiz
gawk 'BEGIN { print 1.2.3+4; }'
e recebeu
1.24.3
Eu esperava um erro de sintaxe por causa dos dois pontos no número.
O que aconteceu aqui ?
Isso é um bug no GNU awk ou é um recurso?
Mesmo resultado com essas versões: GNU Awk 4.1.3, API: 1.1 (GNU MPFR 3.1.4, GNU MP 6.1.0)
do Ubuntu 16.04 e
GNU Awk 4.1.0, API: 1.0 (GNU MPFR 3.1.2, GNU MP 4.3.2)
do cygwin.
A expressão
gawk analisa como duas expressões numéricas:
1.2
e.3+4
.(O segundo ponto não pode fazer parte da primeira expressão, então o analisador o considera como o início de outra expressão. )
A segunda expressão é a soma de
.3
e4
, que gawk avalia corretamente, obtendo4.3
.Em seguida, imprime
1.2
e4.3
(sem delimitador):