src/Pure/Isar/token.ML
changeset 48771 2ea997196d04
parent 48764 4fe0920d5049
child 48867 e9beabf045ab
--- a/src/Pure/Isar/token.ML	Sat Aug 11 17:43:00 2012 +0200
+++ b/src/Pure/Isar/token.ML	Sat Aug 11 18:05:41 2012 +0200
@@ -18,7 +18,6 @@
   val position_of: T -> Position.T
   val end_position_of: T -> Position.T
   val pos_of: T -> string
-  val range: T list -> Position.range
   val eof: T
   val is_eof: T -> bool
   val not_eof: T -> bool
@@ -35,6 +34,7 @@
   val is_begin_ignore: T -> bool
   val is_end_ignore: T -> bool
   val is_error: T -> bool
+  val is_space: T -> bool
   val is_blank: T -> bool
   val is_newline: T -> bool
   val source_of: T -> string
@@ -125,13 +125,6 @@
 
 val pos_of = Position.str_of o position_of;
 
-fun range [] = (Position.none, Position.none)
-  | range toks =
-      let
-        val start_pos = position_of (hd toks);
-        val end_pos = end_position_of (List.last toks);
-      in (start_pos, end_pos) end;
-
 
 (* control tokens *)
 
@@ -185,6 +178,9 @@
 
 (* blanks and newlines -- space tokens obey lines *)
 
+fun is_space (Token (_, (Space, _), _)) = true
+  | is_space _ = false;
+
 fun is_blank (Token (_, (Space, x), _)) = not (String.isSuffix "\n" x)
   | is_blank _ = false;
 
@@ -315,11 +311,11 @@
 
 (* scan space *)
 
-fun is_space s = Symbol.is_blank s andalso s <> "\n";
+fun space_symbol (s, _) = Symbol.is_blank s andalso s <> "\n";
 
 val scan_space =
-  Scan.many1 (is_space o Symbol_Pos.symbol) @@@ Scan.optional ($$$ "\n") [] ||
-  Scan.many (is_space o Symbol_Pos.symbol) @@@ $$$ "\n";
+  Scan.many1 space_symbol @@@ Scan.optional ($$$ "\n") [] ||
+  Scan.many space_symbol @@@ $$$ "\n";
 
 
 (* scan comment *)