equal
deleted
inserted
replaced
14 |
14 |
15 |
15 |
16 (* nibble *) |
16 (* nibble *) |
17 |
17 |
18 val mk_nib = |
18 val mk_nib = |
19 Ast.Constant o Syntax.mark_const o |
19 Ast.Constant o Lexicon.mark_const o |
20 fst o Term.dest_Const o HOLogic.mk_nibble; |
20 fst o Term.dest_Const o HOLogic.mk_nibble; |
21 |
21 |
22 fun dest_nib (Ast.Constant s) = |
22 fun dest_nib (Ast.Constant s) = |
23 (case try Syntax.unmark_const s of |
23 (case try Lexicon.unmark_const s of |
24 NONE => raise Match |
24 NONE => raise Match |
25 | SOME c => (HOLogic.dest_nibble (Const (c, HOLogic.nibbleT)) handle TERM _ => raise Match)); |
25 | SOME c => (HOLogic.dest_nibble (Const (c, HOLogic.nibbleT)) handle TERM _ => raise Match)); |
26 |
26 |
27 |
27 |
28 (* char *) |
28 (* char *) |
42 |
42 |
43 fun dest_char (Ast.Appl [Ast.Constant @{const_syntax Char}, c1, c2]) = dest_chr c1 c2 |
43 fun dest_char (Ast.Appl [Ast.Constant @{const_syntax Char}, c1, c2]) = dest_chr c1 c2 |
44 | dest_char _ = raise Match; |
44 | dest_char _ = raise Match; |
45 |
45 |
46 fun syntax_string cs = |
46 fun syntax_string cs = |
47 Ast.Appl [Ast.Constant @{syntax_const "_inner_string"}, Ast.Variable (Syntax.implode_xstr cs)]; |
47 Ast.Appl [Ast.Constant @{syntax_const "_inner_string"}, |
|
48 Ast.Variable (Lexicon.implode_xstr cs)]; |
48 |
49 |
49 |
50 |
50 fun char_ast_tr [Ast.Variable xstr] = |
51 fun char_ast_tr [Ast.Variable xstr] = |
51 (case Syntax.explode_xstr xstr of |
52 (case Lexicon.explode_xstr xstr of |
52 [c] => mk_char c |
53 [c] => mk_char c |
53 | _ => error ("Single character expected: " ^ xstr)) |
54 | _ => error ("Single character expected: " ^ xstr)) |
54 | char_ast_tr asts = raise Ast.AST ("char_ast_tr", asts); |
55 | char_ast_tr asts = raise Ast.AST ("char_ast_tr", asts); |
55 |
56 |
56 fun char_ast_tr' [c1, c2] = |
57 fun char_ast_tr' [c1, c2] = |
63 fun mk_string [] = Ast.Constant @{const_syntax Nil} |
64 fun mk_string [] = Ast.Constant @{const_syntax Nil} |
64 | mk_string (c :: cs) = |
65 | mk_string (c :: cs) = |
65 Ast.Appl [Ast.Constant @{const_syntax Cons}, mk_char c, mk_string cs]; |
66 Ast.Appl [Ast.Constant @{const_syntax Cons}, mk_char c, mk_string cs]; |
66 |
67 |
67 fun string_ast_tr [Ast.Variable xstr] = |
68 fun string_ast_tr [Ast.Variable xstr] = |
68 (case Syntax.explode_xstr xstr of |
69 (case Lexicon.explode_xstr xstr of |
69 [] => |
70 [] => |
70 Ast.Appl |
71 Ast.Appl |
71 [Ast.Constant @{syntax_const "_constrain"}, |
72 [Ast.Constant @{syntax_const "_constrain"}, |
72 Ast.Constant @{const_syntax Nil}, Ast.Constant @{type_syntax string}] |
73 Ast.Constant @{const_syntax Nil}, Ast.Constant @{type_syntax string}] |
73 | cs => mk_string cs) |
74 | cs => mk_string cs) |