{open Parser} rule token = parse [' ' '\t' '\n' ] { token lexbuf } | ['a'-'z' 'A'-'Z']+ as x { IDENT x } | ['+' '*' '-' '/' '!' '_' '#' '@' '<' '>' '%'] as x { IDENT (String.make 1 x) } | "[]" { IDENT "[]" } | ['0'-'9']+ as a { CONST a } | '.' { POINT } | '(' { LPAR } | ')' { RPAR } | ',' { PAR } | ':' { SEQ } | "<:" { SPLIT } | ":>" { MERGE } | "~" { REC } | eof { EOF }