package archetype
Archetype language compiler
Install
Dune Dependency
Authors
Maintainers
Sources
1.3.0.tar.gz
md5=eecc053d9379ea46d2146931cef1d2af
sha512=f807737647e370d9c830d88c4b85f27b1fdbdf83f5ee0afb80dc8ab0af3b051c432806b4d2f23da50b4c13d715b08d9aa4dab6a9aaa87acefacf2d21fb6a5fcc
doc/src/archetype/pureLexer.ml.html
Source file pureLexer.ml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
open Parser open Parser.MenhirInterpreter type ptoken = token * Lexing.position * Lexing.position module Lexer : sig type t val initialize : Lexing.lexbuf -> unit val start : t val next : t -> ptoken * t val get : t -> ptoken val get' : t -> token val current_position : t -> Position.t val skip_until_before : (token -> bool) -> t -> t end = struct let buffer = ref [] let size = ref 0 let more = ref (fun () -> assert false) let initialize lexbuf = buffer := []; size := 0; more := lexer_lexbuf_to_supplier Lexer.token lexbuf type t = int let start = 0 let get pos = List.nth !buffer (!size - pos) let token_of_ptoken (p, _, _) = p let current_position_of_ptoken (_, start, stop) = Position.lex_join start stop let current_position pos = current_position_of_ptoken (get pos) let get' pos = token_of_ptoken (get pos) let next pos = if pos >= !size - 1 then ( buffer := !more () :: !buffer; incr size; ); let pos = pos + 1 in (get pos, pos) let skip_until_before pred pos = let rec aux pos = let token, _, _ = get pos in if token = EOF then pos else if pred token then pos - 1 else aux (snd (next pos)) in aux pos end
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>