本项目定义了一种可用来创建客服聊天机器人的领域特定语言(DSL),并提供了一个运行时,用于解析DSL并执行DSL中定义的逻辑。
安装依赖
yarn install && cd client && yarn install
启动服务端
yarn start
启动客户端
cd client && yarn start
执行自动化测试
yarn test
手动输入,测试表达式
yarn test:calc
手动输入语法,展示语法树
yarn test:ast
运行本地命令行交互版本(采用docs/example.sc作为脚本文件执行)
yarn cli
在doc/api目录下生成程序内api文档
yarn doc
按照src/parser目录下的antlr4语法文件生成对应的可调用ts模板
yarn antlr4
见语法说明
(详细实现原理请移步完整说明)
.
├── README.md
├── client # 客户端,使用React实现
│ ├── src # 客户端源码
│ │ ├── App.tsx # 客户端入口
│ │ ├── components # 客户端组件,包含聊天部分和编辑器部分
│ │ │ ├── Chatbot.tsx # 聊天部分
│ │ │ ├── Editor.tsx # 编辑器部分
├── docs # 文档
│ ├── api # 程序内api文档
│ ├── case # 示例语法文件
│ ├── 语法说明.md # 语法说明
│ ├── 详细说明.md # 详细说明
│ ├── example.sc # 用于测试的脚本文件
├── src # 服务端源码
│ ├── context # 运行时的上下文管理
│ ├── event # 事件管理
│ ├── executor # 执行器
│ ├── expr # 表达式相关
│ ├── parser # 语法解析部分
│ ├── runtime # 运行时的相关实现
│ ├── session # 会话管理
│ ├── stmt # 语句结构管理
│ ├── visitor # 用于遍历语法树
│ ├── index.tsx # 服务端入口
│ ├── exec.ts # 本地执行CLI入口
├── test # 测试用例