Guest User

Untitled

a guest
Oct 13th, 2018
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Oz 0.67 KB | None | 0 0
  1. declare
  2. Key = ["local" "in" "if" "then" "else" "end"]
  3. Op = ["-" "+" "*" "/" "=" "=="]
  4.  
  5. fun {Tokenize Xs}
  6.    case Xs of H|T then
  7.       Token =
  8.       if {Member H Key} then
  9.      key({String.toAtom H})
  10.       elseif {Member H Op} then
  11.      op({String.toAtom H})
  12.       elseif {List.length H} > 1 then
  13.      feil({String.toAtom H})
  14.       else case H of F|L then
  15.           if F >= &A andthen F =< &Z then
  16.          id({String.toAtom H})
  17.           elseif F >= &a andthen F =< &z then
  18.          atom({String.toAtom H})
  19.           else
  20.          feil({String.toAtom H})
  21.           end
  22.        end
  23.       end in
  24.       Token|{Tokenize T}
  25.    else nil
  26.    end
  27. end
  28.  
  29. {Browse {Tokenize ["local" "x" "A" "==" "wdawdew" "(" "end"]}}
Add Comment
Please, Sign In to add comment