anchor.diff:  
   scan_number([C|Cs], St, Line, Col, Toks, Ncs) when ?DIGIT(C) ->
       scan_number(Cs, St, Line, Col, Toks, [C|Ncs]);
  +scan_number([$_|Cs], St, Line, Col, Toks, Ncs) ->
  +    scan_number(Cs, St, Line, Col, Toks, Ncs);
   scan_number([$.,C|Cs], St, Line, Col, Toks, Ncs) when ?DIGIT(C) ->
       scan_fraction(Cs, St, Line, Col, Toks, [C,$.|Ncs]);
   scan_number([$.]=Cs, _St, Line, Col, Toks, Ncs) ->
  
positive.code: scan_based_int([C|Cs], St, Line, Col, Toks, {B,Ncs,Bcs})
      when C >= $a, B > 10, C < $a+B-10 ->
      scan_based_int(Cs, St, Line, Col, Toks, {B,[C|Ncs],Bcs});
  scan_based_int([]=Cs, _St, Line, Col, Toks, State) ->
      {more,{Cs,Col,Toks,Line,State,fun scan_based_int/6}};
  scan_based_int(Cs, St, Line, Col, Toks, {B,Ncs0,Bcs}) ->
  
negative.code: 
  scan_fraction([C|Cs], St, Line, Col, Toks, Ncs) when ?DIGIT(C) ->
      scan_fraction(Cs, St, Line, Col, Toks, [C|Ncs]);
  scan_fraction([$_|Cs], St, Line, Col, Toks, Ncs) ->
      scan_fraction(Cs, St, Line, Col, Toks, Ncs);
  scan_fraction([E|Cs], St, Line, Col, Toks, Ncs) when E =:= $e; E =:= $E ->
      scan_exponent_sign(Cs, St, Line, Col, Toks, [E|Ncs]);
  scan_fraction([]=Cs, _St, Line, Col, Toks, Ncs) ->
  