自由モノイドプログラミング言語の作成(MonIter バージョン1.2 仕様(1))
C# 形式のコードを変換する機能は作成できました。
ここで、この言語を改造してモノイド的論理プログラミング言語(MonoLog)、モノイド的クロージャー調査用言語(MonoClosure)を作る計画なので、各クラスを説明しておきます。
構文要素に対応するインターフェースとクラス
階層はインターフェースの下はそのインターフェースを実装するクラス、その下はそのクラスを構成するクラスを表します。
- interface CodeGeneratable
- class Prog
- interface Statement : CodeGeneratable
- class Definition : Statement
- class ParameterName : CodeGeneratable
- class ExpressionStatement : Statement
- class Expression : CodeGeneratable
- class Definition : Statement
- interface Term : CodeGeneratable
- class Function : Term
- class DomainFunction : Term
- class DomainUnit : Term
- interface DomainExpression : CodeGeneratable
- class DomainOperation : DomainExpression
- class Identifier : DomainExpression
- class Number : DomainExpression
評価時に引数の値を記憶するためのクラス
- class Env<T> : IEnumerable<EnvNode<T>>
- class EnvNode<T>
- class FreeMonoidUnion
無限版自由モノイドのクラス
- class FreeMonoid<T> : IEnumerable<T>
構文解析のためのクラス
- class MonParser
- static class ParserExtension





