X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Focaml%2Fmathql%2FmQueryTLexer.mll;h=5dbb3d1b9641aa44c02ab43c89b40a0c0dd69adb;hb=fb7df84a9ffea7a67817b303a1d6983fb52e963d;hp=6f4fab954e43e38e04d4718ab980dfea6add95ee;hpb=9ee9af7b1b537f0ff921b4936bd5a248fac72e6d;p=helm.git diff --git a/helm/ocaml/mathql/mQueryTLexer.mll b/helm/ocaml/mathql/mQueryTLexer.mll index 6f4fab954..5dbb3d1b9 100644 --- a/helm/ocaml/mathql/mQueryTLexer.mll +++ b/helm/ocaml/mathql/mQueryTLexer.mll @@ -35,6 +35,10 @@ { open MQueryTParser + + let debug = true + + let out s = if debug then prerr_endline s } let SPC = [' ' '\t' '\n']+ @@ -49,50 +53,53 @@ rule comm_token = parse and string_token = parse | '"' { DQ } | '\\' _ { STR (String.sub (Lexing.lexeme lexbuf) 1 1) } - | QSTR { STR (Lexing.lexeme lexbuf) } + | QSTR { prerr_endline "STR"; STR (Lexing.lexeme lexbuf) } | eof { EOF } and query_token = parse | "(*" { comm_token lexbuf } | SPC { query_token lexbuf } - | '"' { STR (qstr string_token lexbuf) } - | '(' { LP } - | ')' { RP } - | '{' { LC } - | '}' { RC } - | '@' { AT } - | '%' { PC } - | '$' { DL } - | '.' { FS } - | ',' { CM } - | '/' { SL } - | "and" { AND } - | "attr" { ATTR } - | "attribute" { ATTRIB } - | "be" { BE } - | "diff" { DIFF } - | "eq" { EQ } - | "ex" { EX } - | "false" { FALSE } - | "fun" { FUN } - | "in" { IN } - | "intersect" { INTER } - | "inverse" { INV } - | "let" { LET } - | "meet" { MEET } - | "not" { NOT } - | "or" { OR } - | "pattern" { PAT } - | "ref" { REF } - | "refof" { REFOF } - | "relation" { REL } - | "select" { SELECT } - | "sub" { SUB } - | "super" { SUPER } - | "true" { TRUE } - | "union" { UNION } - | "where" { WHERE } - | IDEN { ID (Lexing.lexeme lexbuf) } - | eof { EOF } + | '"' { let str = qstr string_token lexbuf in + out ("STR " ^ str); STR str } + | '(' { out "LP"; LP } + | ')' { out "RP"; RP } + | '{' { out "LC"; LC } + | '}' { out "RC"; RC } + | '@' { out "AT"; AT } + | '%' { out "PC"; PC } + | '$' { out "DL"; DL } + | '.' { out "FS"; FS } + | ',' { out "CM"; CM } + | '/' { out "SL"; SL } + | "<-" { out "GETS" ; GETS } + | "and" { out "AND" ; AND } + | "attr" { out "ATTR" ; ATTR } + | "be" { out "BE" ; BE } + | "diff" { out "DIFF" ; DIFF } + | "eq" { out "EQ" ; EQ } + | "ex" { out "EX" ; EX } + | "false" { out "FALSE" ; FALSE } + | "fun" { out "FUN" ; FUN } + | "in" { out "IN" ; IN } + | "intersect" { out "INTER" ; INTER } + | "inverse" { out "INV" ; INV } + | "let" { out "LET" ; LET } + | "meet" { out "MEET" ; MEET } + | "not" { out "NOT" ; NOT } + | "or" { out "OR" ; OR } + | "pattern" { out "PAT" ; PAT } + | "ptoperty" { out "PROP" ; PROP } + | "ref" { out "REF" ; REF } + | "refof" { out "REFOF" ; REFOF } + | "relation" { out "REL" ; REL } + | "select" { out "SELECT"; SELECT } + | "sub" { out "SUB" ; SUB } + | "super" { out "SUPER" ; SUPER } + | "true" { out "TRUE" ; TRUE } + | "union" { out "UNION" ; UNION } + | "where" { out "WHERE" ; WHERE } + | IDEN { let id = Lexing.lexeme lexbuf in + out ("ID " ^ id); ID id } + | eof { out "EOF" ; EOF } and result_token = parse | SPC { result_token lexbuf } | '"' { STR (qstr string_token lexbuf) } @@ -101,5 +108,5 @@ and result_token = parse | ',' { CM } | ';' { SC } | '=' { IS } - | "attr" { ATTR } - | eof { EOF } + | "attr" { ATTR } + | eof { EOF }