一、程序的基本结构
程序的控制核心是Context类,它持有:
·类型管理器TypeManager,管理该运用程序域加载的命名空间及类型的树,树结构如下:
其中TypeDictionary对应的是命名空间,Type对应的是类型。TypeManager还管理一个名为Now的TypeDictionary,表示当前所在的 TypeDictionary。
·AliasCmds ,命令缩写字典。
·Instances,用户变量字典。
·CmdDispatcher是命令指派器。控制台获取指令后传给Context。代码:
Context又传给CmdDispatcher处理。CmdDispatcher解析命令,根据命令的特征选择不同的CmdHandler来处理。目前编写了5个CmdDispatcher:
CdClassCmdHandler:进出命名空间的处理,针对cdc指令;
ListClassCmdHandler:列出命名空间和类型,针对lsc,dirc指令;
ListInstanceCmdHandler:列出用户变量,针对 my 指令;
ListAliasCmdHandler:列出指令缩写,针对 alias 指令;
CscCmdHandler:编译并运行代码,其它CmdDispatcher 处理不了的都交给它。
CmdDispatcher.Dispatch()方法代码: