equal
deleted
inserted
replaced
1537 )) |
1537 )) |
1538 else |
1538 else |
1539 error ("Incompatible serializers: " ^ quote target); |
1539 error ("Incompatible serializers: " ^ quote target); |
1540 |
1540 |
1541 structure CodegenSerializerData = TheoryDataFun |
1541 structure CodegenSerializerData = TheoryDataFun |
1542 (struct |
1542 ( |
1543 val name = "Pure/codegen_serializer"; |
|
1544 type T = target Symtab.table; |
1543 type T = target Symtab.table; |
1545 val empty = Symtab.empty; |
1544 val empty = Symtab.empty; |
1546 val copy = I; |
1545 val copy = I; |
1547 val extend = I; |
1546 val extend = I; |
1548 fun merge _ = Symtab.join merge_target; |
1547 fun merge _ = Symtab.join merge_target; |
1549 fun print _ _ = (); |
1548 ); |
1550 end); |
|
1551 |
1549 |
1552 fun the_serializer (Target { serializer, ... }) = serializer; |
1550 fun the_serializer (Target { serializer, ... }) = serializer; |
1553 fun the_reserved (Target { reserved, ... }) = reserved; |
1551 fun the_reserved (Target { reserved, ... }) = reserved; |
1554 fun the_syntax_expr (Target { syntax_expr = SyntaxExpr x, ... }) = x; |
1552 fun the_syntax_expr (Target { syntax_expr = SyntaxExpr x, ... }) = x; |
1555 fun the_syntax_modl (Target { syntax_modl = SyntaxModl x, ... }) = x; |
1553 fun the_syntax_modl (Target { syntax_modl = SyntaxModl x, ... }) = x; |
1585 val target_OCaml = "OCaml"; |
1583 val target_OCaml = "OCaml"; |
1586 val target_Haskell = "Haskell"; |
1584 val target_Haskell = "Haskell"; |
1587 val target_diag = "diag"; |
1585 val target_diag = "diag"; |
1588 |
1586 |
1589 val _ = Context.add_setup ( |
1587 val _ = Context.add_setup ( |
1590 CodegenSerializerData.init |
1588 add_serializer (target_SML, isar_seri_sml) |
1591 #> add_serializer (target_SML, isar_seri_sml) |
|
1592 #> add_serializer (target_OCaml, isar_seri_ocaml) |
1589 #> add_serializer (target_OCaml, isar_seri_ocaml) |
1593 #> add_serializer (target_Haskell, isar_seri_haskell) |
1590 #> add_serializer (target_Haskell, isar_seri_haskell) |
1594 #> add_serializer (target_diag, (fn _ => fn _ => fn _ => seri_diagnosis)) |
1591 #> add_serializer (target_diag, (fn _ => fn _ => fn _ => seri_diagnosis)) |
1595 ); |
1592 ); |
1596 |
1593 |