diff options
author | letouzey <letouzey@85f007b7-540e-0410-9357-904b9bb8a0f7> | 2010-05-19 15:29:44 +0000 |
---|---|---|
committer | letouzey <letouzey@85f007b7-540e-0410-9357-904b9bb8a0f7> | 2010-05-19 15:29:44 +0000 |
commit | 259dde7928696593c2d3c6de474f5cf50fa4417d (patch) | |
tree | 7fe225a0731c13b30cb10ae7098e096f38903366 /lib/util.ml | |
parent | e1feff1215562d8f99fedf73c87011e6d7edca19 (diff) |
Nicer representation of tokens, more independant of camlp*
Cf tok.ml, token isn't anymore string*string where first
string encodes the kind of the token, but rather a nice
sum type. Unfortunately, string*string (a.k.a Plexing.pattern)
is still used in some places of Camlp5, so there's a few
conversions back and forth. But the penalty should be quite low,
and having nicer tokens helps in the forthcoming integration
of support for camlp4 post 3.10
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@13018 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'lib/util.ml')
-rw-r--r-- | lib/util.ml | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/lib/util.ml b/lib/util.ml index a70278d57..d08727d27 100644 --- a/lib/util.ml +++ b/lib/util.ml @@ -1115,6 +1115,15 @@ let array_rev_to_list a = if i >= Array.length a then res else tolist (i+1) (a.(i) :: res) in tolist 0 [] +(* Stream *) + +let stream_nth n st = + try List.nth (Stream.npeek (n+1) st) n + with Failure _ -> raise Stream.Failure + +let stream_njunk n st = + for i = 1 to n do Stream.junk st done + (* Matrices *) let matrix_transpose mat = |