Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Bug#1010184: miller: Parse error on token "1e+"

26 views
Skip to first unread message

Kingsley G. Morse Jr.

unread,
Apr 25, 2022, 4:10:03 PM4/25/22
to
Package: miller
Version: 6.2.0-1
Severity: normal

Hi Stephen,

Thanks again for maintaining a convenient Debian
package of John Kerl's cool "mlr".

I happened to notice mlr doesn't seem to recognize
numbers in scientific notation with explicitly
positive exponents.

Since awk seems to work with them, I

thought you and maybe John would want to know,
and

filed this bug report.

Here are some simple examples that I hope will
also reveal the bug on your computer:

$ echo | mlr put 'print 1e+0'

On my computer, mlr complains with:

mlr: cannot parse DSL expression.
Parse error on token "1e+" at line 1 column 7.
Please check for missing semicolon.
Expected one of:
$ ; { > >> | ( field_name $[ braced_field_name $[[ $[[[ full_srec oosvar_name
@[ braced_oosvar_name full_oosvar all non_sigil_name float int + - .+ .-
! ~ string_literal regex_case_insensitive int_literal float_literal boolean_literal
null_literal inf_literal nan_literal const_M_PI const_M_E panic [ ctx_IPS
ctx_IFS ctx_IRS ctx_OPS ctx_OFS ctx_ORS ctx_FLATSEP ctx_NF ctx_NR ctx_FNR
ctx_FILENAME ctx_FILENUM env func

I'm happy to report a workaround is simply
omitting the positive "+" sign before the exponent
like this:

$ echo | mlr put 'print 1e0'

At least on my computer, mlr returns

1e0

For what it's worth, here's an analogous example
with the great grand daddy of csv tools, awk:

$ echo | awk '{ print 1e+0 }

At least on my computer, awk returns

1

If I understand the following link correctly, John
originally implemented scientific notation in DSL
literals back in version 3.0.1:

Allow scientific notation in DSL literals; mlr bar --auto
https://github.com/johnkerl/miller/releases/tag/v3.0.1

Thanks again,
Kingsley

-- System Information:
Debian Release: bullseye/sid
APT prefers unstable-debug
APT policy: (500, 'unstable-debug'), (500, 'unstable')
Architecture: i386 (i686)

Kernel: Linux 4.4.0-1-686-pae (SMP w/2 CPU threads)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /bin/bash
Init: systemd (via /run/systemd/system)

Versions of packages miller depends on:
ii libc6 2.33-7

miller recommends no packages.

miller suggests no packages.

-- no debconf information
0 new messages