anchor.diff:  
   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) ->
  
positive.code: 
  scan_number([C|Cs], St, Line, Col, Toks, Ncs) when ?DIGIT(C) ->
      scan_number(Cs, St, Line, Col, Toks, [C|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) ->
  
negative.code: 
  scan_exponent([C|Cs], St, Line, Col, Toks, Ncs) when ?DIGIT(C) ->
      scan_exponent(Cs, St, Line, Col, Toks, [C|Ncs]);
  scan_exponent([$_|Cs], St, Line, Col, Toks, Ncs) ->
      scan_exponent(Cs, St, Line, Col, Toks, Ncs);
  scan_exponent([]=Cs, _St, Line, Col, Toks, Ncs) ->
      {more,{Cs,Col,Toks,Line,Ncs,fun scan_exponent/6}};
  scan_exponent(Cs, St, Line, Col, Toks, Ncs) ->
  