-<CODE> "or" => (Tokens.ORELSE (yypos, yypos + 5));
-<CODE> "and" => (Tokens.ANDALSO (yypos, yypos + 5));
+<CODE> "or" => (Tokens.ORELSE (yypos, yypos + 2));
+<CODE> "and" => (Tokens.ANDALSO (yypos, yypos + 3));
+<CODE> "switch" => (Tokens.SWITCH (yypos, yypos + 6));
+<CODE> "of" => (Tokens.OF (yypos, yypos + 2));
+<CODE> "=>" => (Tokens.ARROW (yypos, yypos + 2));
+<CODE> "|" => (Tokens.BAR (yypos, yypos + 1));
+<CODE> "do" => (Tokens.DO (yypos, yypos + 2));
+<CODE> "end" => (Tokens.END (yypos, yypos + 3));
+<CODE> "raise" => (Tokens.RAISE (yypos, yypos + 5));