File: 254_functorArg.sml

package info (click to toggle)
smlsharp 4.1.0-1.1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 123,724 kB
  • sloc: ansic: 16,725; sh: 4,347; makefile: 2,191; java: 742; haskell: 493; ruby: 305; cpp: 284; pascal: 256; ml: 255; lisp: 141; asm: 97; sql: 74
file content (42 lines) | stat: -rw-r--r-- 909 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
(* 2013-4-7 ohori:
This causes unexpected name error:

ccc.smi:32.11-32.44 Error:
  (name evaluation CP-260) Provide check fails (type definition):
  mkCore.IntGrammar.SymbolAssoc.key

*)

(* ohori 2013-08-07 
  再現しない.おそらくこれ以降の変更で修正されたとおもわれる.
  とりあえずfixedに移す.
*)


signature TABLE =
   sig
    type key
   end
signature GRAMMAR =
    sig
     datatype symbol = TERM of int | NONTERM of int
   end
signature INTGRAMMAR =
    sig
      structure Grammar  : GRAMMAR
      structure SymbolAssoc : TABLE
      sharing type SymbolAssoc.key = Grammar.symbol
    end

functor mkCore(structure IntGrammar : INTGRAMMAR)
 : 
    sig
	structure Grammar : GRAMMAR
	structure IntGrammar : INTGRAMMAR
	sharing Grammar = IntGrammar.Grammar
    end
 =
  struct
    structure IntGrammar = IntGrammar
    structure Grammar = IntGrammar.Grammar
  end