diff options
author | Anthony Ramine <[email protected]> | 2012-06-02 18:37:53 +0200 |
---|---|---|
committer | Anthony Ramine <[email protected]> | 2012-06-02 18:41:18 +0200 |
commit | f6dc9c00459cba32e06d5eb7a0b9f2c6785a4e4d (patch) | |
tree | c26924c4eea6ad42a95d0e39c340c3a45d046067 /lib/compiler | |
parent | 26ad68f8246e38c915721d6112e075db182ed27b (diff) | |
download | otp-f6dc9c00459cba32e06d5eb7a0b9f2c6785a4e4d.tar.gz otp-f6dc9c00459cba32e06d5eb7a0b9f2c6785a4e4d.tar.bz2 otp-f6dc9c00459cba32e06d5eb7a0b9f2c6785a4e4d.zip |
Create a new "column" option in compile
If set, compile will call epp with a full location {1, 1} instead of 1,
thus making it keep the column numbers in the parsed AST.
Diffstat (limited to 'lib/compiler')
-rw-r--r-- | lib/compiler/doc/src/compile.xml | 5 | ||||
-rw-r--r-- | lib/compiler/src/compile.erl | 9 |
2 files changed, 13 insertions, 1 deletions
diff --git a/lib/compiler/doc/src/compile.xml b/lib/compiler/doc/src/compile.xml index 84e9922847..2e783d82a0 100644 --- a/lib/compiler/doc/src/compile.xml +++ b/lib/compiler/doc/src/compile.xml @@ -108,6 +108,11 @@ See the <em>Efficiency Guide</em> for further information.</p> </item> + <tag><c>column</c></tag> + <item> + <p>The compiler will keep the column numbers while parsing.</p> + </item> + <tag><c>compressed</c></tag> <item> <p>The compiler will compress the generated object code, diff --git a/lib/compiler/src/compile.erl b/lib/compiler/src/compile.erl index 9b505ad15c..c443f9f788 100644 --- a/lib/compiler/src/compile.erl +++ b/lib/compiler/src/compile.erl @@ -769,7 +769,8 @@ parse_module(St) -> Opts = St#compile.options, Cwd = ".", IncludePath = [Cwd, St#compile.dir|inc_paths(Opts)], - R = epp:parse_file(St#compile.ifile, IncludePath, pre_defs(Opts)), + AtPos = initial_position(Opts), + R = epp:parse_file(St#compile.ifile, AtPos, IncludePath, pre_defs(Opts)), case R of {ok,Forms} -> {ok,St#compile{code=Forms}}; @@ -1475,6 +1476,12 @@ objfile(Base, St) -> tmpfile(Ofile) -> reverse([$#|tl(reverse(Ofile))]). +initial_position(Opts) -> + case lists:member(column, Opts) of + true -> {1, 1}; + false -> 1 + end. + %% pre_defs(Options) %% inc_paths(Options) %% Extract the predefined macros and include paths from the option list. |