Ch.11 Separate compilation in SML#

§ 11.8. Syntax of the interface language

This section outline the syntax of the interface language. Those non terminals such as conbind that are not defined here are the same as those in the Definition of Standard ML.

interface::=requireDeclList  provideDeclList(interface)requireDeclList::=|_require  smiFilePath | requireDeclList|_require  sigFilePath | requireDeclListprovideDeclList::=|provideDecl | requireDeclListprovideDecl::=idecl | ifundeclidecl::=val  valdesc|type  itypbind|eqtype  tyvarSeq  id(= ty)|datatype  idatbind|datatype  id = datatype  longid|exception  exbind|structure  id = istrexp|infix  n  id|infixr  n  id|noninfix  n  iditypbind::=tyvarSeq  id = ty|tyvarSeq  id( = rep)rep::=boxed|char|codeptr|contag|int|intInf|ptr|real|real32|unit|word|word8idatbind::=tyvarSeq  id = conbinds  [  and  idatbind]|tyvarSeq  id  ( =   conbinds  [  and  idatbind])istrexp::=struct  ideclSeq  endifundec::=functor  id  (id : sigexp ) = istrexp