{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 }