package snippet:plugin@0.1.1; interface language { use types.{error-type, mode, optset, lang, target}; use compiler.{compiler}; /// The lang of language plugin, for example `Lang::C` name: func() -> lang; /// The fmt tool used by default for language plugin fmt: func() -> string; /// Initialize a optset, used for generate command line interface initialize-optset: func() -> result; /// Fill the option used by current language plugin fill-optset: func(optset: optset) -> result; /// Compile the code compile: func(optset: optset, compiler: compiler) -> result; }