]> granicus.if.org Git - ejabberd/commitdiff
Add missed jlib:term_to_expr and jlib:expr_to_term functions
authorAlexey Shchepin <alexey@process-one.net>
Thu, 5 May 2016 13:42:48 +0000 (16:42 +0300)
committerAlexey Shchepin <alexey@process-one.net>
Thu, 5 May 2016 13:42:48 +0000 (16:42 +0300)
src/jlib.erl

index 7bea7bb11b5fb449beabc929d2c9a044044721f3..bad46898de232de57487d7f2c2aa0c530a1fe8de 100644 (file)
@@ -54,7 +54,8 @@
         binary_to_integer/1, binary_to_integer/2,
         integer_to_binary/1, integer_to_binary/2,
         atom_to_binary/1, binary_to_atom/1, tuple_to_binary/1,
-        l2i/1, i2l/1, i2l/2, queue_drop_while/2]).
+        l2i/1, i2l/1, i2l/2, queue_drop_while/2,
+        expr_to_term/1, term_to_expr/1]).
 
 %% The following functions are deprecated and will be removed soon
 %% Use corresponding functions from jid.erl instead
@@ -890,6 +891,14 @@ tuple_to_binary(T) ->
 atom_to_binary(A) ->
     erlang:atom_to_binary(A, utf8).
 
+expr_to_term(Expr) ->
+    Str = binary_to_list(<<Expr/binary, ".">>),
+    {ok, Tokens, _} = erl_scan:string(Str),
+    {ok, Term} = erl_parse:parse_term(Tokens),
+    Term.
+
+term_to_expr(Term) ->
+    list_to_binary(io_lib:print(Term)).
 
 l2i(I) when is_integer(I) -> I;
 l2i(L) when is_binary(L) -> binary_to_integer(L).