tools/gn: disallow non-canonical integer literals
commitb45ed217c61cd69eee2eafd9dbf5798520685538
authormdempsky <mdempsky@chromium.org>
Tue, 31 Mar 2015 23:58:20 +0000 (31 16:58 -0700)
committerCommit bot <commit-bot@chromium.org>
Tue, 31 Mar 2015 23:58:53 +0000 (31 23:58 +0000)
tree3aa5c493dbd2570f7e82d858e0b3e2687647c5bd
parentfc686aaf2fa65f89e269f3f34ebfa979b530955b
tools/gn: disallow non-canonical integer literals

In most languages familiar to Chromium developers (e.g., C++,
JavaScript, Python, Java, Go, Bash, Perl, Ruby), a leading 0 in an
integer literal indicates an octal number.  For example, "010" and
"-010" represent 8 and -8, respectively.

GN doesn't have any use for octal integer literals, so reject integers
with leading zeros to avoid confusion rather than interpreting them as
decimal values.

While here, "-0" isn't useful either since it's equivalent to "0", so
reject that too.

No Chromium BUILD.gn files are affected by this change.

Review URL: https://codereview.chromium.org/1038233002

Cr-Commit-Position: refs/heads/master@{#323142}
tools/gn/parse_tree.cc
tools/gn/parse_tree_unittest.cc
tools/gn/parser.cc