src/Tools/Code/code_printer.ML
changeset 52099 6225d5b308f9
parent 52079 291bb1f4af29
child 52135 d9794a370472
equal deleted inserted replaced
52098:6c38df1d294a 52099:6225d5b308f9
   486   end;
   486   end;
   487 
   487 
   488 val parse_fixity =
   488 val parse_fixity =
   489   (@{keyword "infix"} >> K X) || (@{keyword "infixl"} >> K L) || (@{keyword "infixr"} >> K R)
   489   (@{keyword "infix"} >> K X) || (@{keyword "infixl"} >> K L) || (@{keyword "infixr"} >> K R)
   490 
   490 
   491 val parse_mixfix  =
   491 fun parse_mixfix x =
   492   Parse.string >> read_mixfix
   492   (Parse.string >> read_mixfix
   493   || parse_fixity -- Parse.nat -- Parse.string
   493   || parse_fixity -- Parse.nat -- Parse.string
   494      >> (fn ((fixity, i), s) => read_infix (fixity, i) s);
   494      >> (fn ((fixity, i), s) => read_infix (fixity, i) s)) x;
   495 
   495 
   496 fun syntax_of_mixfix of_plain of_printer prep_arg (BR, [String s]) = of_plain s
   496 fun syntax_of_mixfix of_plain of_printer prep_arg (BR, [String s]) = of_plain s
   497   | syntax_of_mixfix of_plain of_printer prep_arg (fixity, mfx) =
   497   | syntax_of_mixfix of_plain of_printer prep_arg (fixity, mfx) =
   498       of_printer (printer_of_mixfix prep_arg (fixity, mfx));
   498       of_printer (printer_of_mixfix prep_arg (fixity, mfx));
   499 
   499 
   500 val parse_tyco_syntax =
   500 fun parse_tyco_syntax x =
   501   parse_mixfix >> syntax_of_mixfix (fn s => (0, (K o K o K o str) s)) I I;
   501   (parse_mixfix >> syntax_of_mixfix (fn s => (0, (K o K o K o str) s)) I I) x;
   502 
   502 
   503 val parse_const_syntax =
   503 val parse_const_syntax =
   504   parse_mixfix >> syntax_of_mixfix plain_const_syntax simple_const_syntax fst;
   504   parse_mixfix >> syntax_of_mixfix plain_const_syntax simple_const_syntax fst;
   505 
   505 
   506 end; (*struct*)
   506 end; (*struct*)