anchor.diff:  	State = if 
   			H >= $0 andalso H =< $9 -> read_number;
   			H >= $A andalso H =< $z -> read_string;
  +			H =:= 32 -> skip_space;
   			true -> read_operator
   		end,
   	String = [H|T],
  
positive.code: 			{{number, Number}, StringWithoutNumber};
  		read_string -> 
  			{NewString, NextCharactersTmp} = extrude_string(String, ""),
  			{convert_str_to_token(NewString), NextCharactersTmp}
  	end,
  	[NewToken|tokenize(NextCharacters)].
  
  parse_impl([], Result) -> {Result, []};
  parse_impl(Tokens, Result) ->
  	{NewResult, NewNextTokens, MustContinue} = case Tokens of
  		[{operator, unary_minus},{operator, open_bracket}|T] -> 
  			%This case is needed for parsing expressions like "(~(1+2)-3)".
  			%If we don't think about unary minus and bracket as one symbol
  
negative.code: 			%I don't know another way to solve this problem.
  			{SubResult, NextTokens} = parse_impl(T, {}),
  			{{unary_minus, SubResult}, NextTokens, true};
  		[{operator, unary_minus}|T] -> 
  			{SubResult, NextTokens} = parse_impl(T, {}),
  			{{unary_minus, SubResult}, NextTokens, true};
  		[{operator, open_bracket}|T] -> 
  			{SubResult, NextTokens} = parse_impl(T, {}),
  			{SubResult, NextTokens, true};
  