diff options
author | Hans Bolinder <[email protected]> | 2015-10-07 12:50:29 +0200 |
---|---|---|
committer | Hans Bolinder <[email protected]> | 2016-05-09 08:27:21 +0200 |
commit | c9b719d7f6a34959c9ce7889c0036fe61404f97b (patch) | |
tree | 22db81945cfe692a71cf2a730c917bef04b7e304 /lib | |
parent | 491daf276d65bb9f1623f57bd5f850db93bcb97b (diff) | |
download | otp-c9b719d7f6a34959c9ce7889c0036fe61404f97b.tar.gz otp-c9b719d7f6a34959c9ce7889c0036fe61404f97b.tar.bz2 otp-c9b719d7f6a34959c9ce7889c0036fe61404f97b.zip |
syntax_tools: Fix pretty-printing of the \x{...} syntax
Diffstat (limited to 'lib')
-rw-r--r-- | lib/syntax_tools/src/erl_prettypr.erl | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/lib/syntax_tools/src/erl_prettypr.erl b/lib/syntax_tools/src/erl_prettypr.erl index 81272e62de..ae7811994d 100644 --- a/lib/syntax_tools/src/erl_prettypr.erl +++ b/lib/syntax_tools/src/erl_prettypr.erl @@ -27,6 +27,8 @@ -module(erl_prettypr). +-compile(export_all). + -export([format/1, format/2, best/1, best/2, layout/1, layout/2, get_ctxt_precedence/1, set_ctxt_precedence/2, get_ctxt_paperwidth/1, set_ctxt_paperwidth/2, @@ -1020,6 +1022,8 @@ split_string_1([], _N, _L, As) -> split_string_2([$^, X | Xs], N, L, As) -> split_string_1(Xs, N - 2, L - 2, [X, $^ | As]); +split_string_2([$x, ${ | Xs], N, L, As) -> + split_string_3(Xs, N - 2, L - 2, [${, $x | As]); split_string_2([X1, X2, X3 | Xs], N, L, As) when X1 >= $0, X1 =< $7, X2 >= $0, X2 =< $7, X3 >= $0, X3 =< $7 -> split_string_1(Xs, N - 3, L - 3, [X3, X2, X1 | As]); @@ -1029,6 +1033,15 @@ split_string_2([X1, X2 | Xs], N, L, As) when split_string_2([X | Xs], N, L, As) -> split_string_1(Xs, N - 1, L - 1, [X | As]). +split_string_3([$} | Xs], N, L, As) -> + split_string_1(Xs, N - 1, L - 1, [$} | As]); +split_string_3([X | Xs], N, L, As) when + X >= $0, X =< $9; X >= $a, X =< $z; X >= $A, X =< $Z -> + split_string_3(Xs, N - 1, L -1, [X | As]); +split_string_3([X | Xs], N, L, As) when + X >= $0, X =< $9 -> + split_string_1(Xs, N - 1, L -1, [X | As]). + %% Note that there is nothing in `lay_clauses' that actually requires %% that the elements have type `clause'; it just sets up the proper %% context and arranges the elements suitably for clauses. |