Home My Page Projects Code Snippets Project Openings SML/NJ
Summary Activity Forums Tracker Lists Tasks Docs Surveys News SCM Files

SCM Repository

[smlnj] Diff of /sml/trunk/src/ml-lex/lexgen.sml
ViewVC logotype

Diff of /sml/trunk/src/ml-lex/lexgen.sml

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 656, Fri Jun 9 03:39:04 2000 UTC revision 919, Tue Aug 28 18:00:10 2001 UTC
# Line 604  Line 604 
604          in NextTok := makeTok()          in NextTok := makeTok()
605          end          end
606          | 2 => NextTok :=          | 2 => NextTok :=
607               (case skipws()                 (case skipws() of
608                   of #"(" => let                    #"(" =>
609                          fun GetAct (lpct,x) = (case getch(!LexBuf)                    let
610                                 of #"(" => GetAct (lpct+1, #"("::x)                      fun loop_to_end (backslash, x) =
611                                  | #")" => if lpct = 0 then (implode (rev x))                        let
612                                                        else GetAct(lpct-1, #")"::x)                          val c    = getch (! LexBuf)
613                                  | y => GetAct(lpct,y::x)                          val notb = not backslash
614                                (* end case *))                          val nstr = c :: x
615                          in ACTION (GetAct (0,nil))                        in
616                            case c of
617                              #"\"" => if notb then nstr
618                                       else loop_to_end (false, nstr)
619                            | _ => loop_to_end (c = #"\\" andalso notb, nstr)
620                          end
621                        fun GetAct (lpct, x) =
622                          let
623                            val c    = getch (! LexBuf)
624                            val nstr = c :: x
625                          in
626                            case c of
627                              #"\"" => GetAct (lpct, loop_to_end (false, nstr))
628                            | #"(" => GetAct (lpct + 1, nstr)
629                            | #")" => if lpct = 0 then implode (rev x)
630                                      else GetAct(lpct - 1, nstr)
631                            | _ => GetAct(lpct, nstr)
632                          end
633                      in
634                        ACTION (GetAct (0,nil))
635                          end                          end
636                   | #";" => SEMI                   | #";" => SEMI
637                   | c => (prSynErr ("invalid character " ^ String.str c)))                   | c => (prSynErr ("invalid character " ^ String.str c)))

Legend:
Removed from v.656  
changed lines
  Added in v.919

root@smlnj-gforge.cs.uchicago.edu
ViewVC Help
Powered by ViewVC 1.0.0