anchor.diff:  
   
   resolve_var(#variable{idx=[]}=Var, State) ->
  -    {search(Var, State), State};
  +    {search(Var, State#state.vars), State};
   
   resolve_var(#variable{idx=Indexes}=Var, State) ->
       {NewIndexes, NewState} = lists:foldl(fun(Idx,{I,NS}) ->
           {Value, NState} = resolve(Idx, NS),
           {I ++ [Value], NState}
       end, {[],State}, Indexes),
  -    Value = search(Var#variable{idx=NewIndexes}, NewState),
  +    Value = search(Var#variable{idx=NewIndexes}, NewState#state.vars),
       {Value, NewState}.
   
   
  
positive.code: }).
  
  -record(state, {
      vars = ?DICT:new() :: dict(),
      funcs :: pid(),
      timezone = "Europe/Madrid" :: string(),
      output = <<>> :: binary(),
      global = undefined :: undefined | pid(),
      global_vars = ?SETS:new() :: set(),
      const = ?DICT:new() :: dict()
  }).
  
  
negative.code:     State#state{output = <<Output/binary, Text/binary>>}.
  
  
  search(Var, Vars) ->
      ephp_vars:get(Vars, Var).
  
  
  change(Var, Value, Vars) ->
      ephp_vars:set(Vars, Var, Value).
  
  
  resolve(true, State) -> 
  