# 图形化编程 **Repository Path**: pao200724/graph_coding ## Basic Information - **Project Name**: 图形化编程 - **Description**: 图形化编程工具 - **Primary Language**: TypeScript - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-02-07 - **Last Updated**: 2026-04-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Graph Coding - 多语言代码生成与类型检查系统 [](https://opensource.org/licenses/MIT) [](https://nextjs.org/) [](https://www.typescriptlang.org/) [](https://react.dev/) [](https://tdesign.tencent.com/) 一个功能强大的多语言代码生成器、类型检查系统和可视化节点编辑器。支持 TypeScript、Python、Go、Lua 等多种语言,提供完整的 AST(抽象语法树)处理能力。 ## 🌟 核心特性 ### 1. 多语言代码生成器 - **支持语言**: TypeScript、Python、Go、Lua - **完整的 AST 支持**: 涵盖所有 TypeScript 语法特性 - **类型系统**: 支持原始类型、联合类型、交集类型、泛型、条件类型等 - **模块化设计**: 基于抽象基类,易于扩展新语言 ### 2. 类型检查系统 - **类型推断**: 自动推断表达式、变量的类型 - **类型匹配**: 完整的类型兼容性检查 - **错误诊断**: 详细的类型错误信息和位置 - **符号表管理**: 支持多级作用域和变量查找 ### 3. 可视化节点编辑器 - **拖拽式编辑**: 直观的节点拖放操作 - **连线系统**: 贝塞尔曲线连接,支持端口类型检查 - **画布操作**: 支持平移、缩放、对齐 - **历史记录**: 撤销/重做功能 - **导入导出**: JSON 格式的图形导入导出 ### 4. 现代化 UI - **TDesign 组件库**: 使用腾讯 TDesign 组件库,提供企业级 UI 体验 - **响应式设计**: 适配不同屏幕尺寸 - **丰富的测试工具**: 可视化测试界面,方便调试和验证 ## 📁 项目结构 ``` graph_coding/ ├── src/ │ ├── language/ # 语言处理核心 │ │ ├── config/ # 语言配置和运算符表 │ │ ├── core/ # AST 类型定义 │ │ ├── generator/ # 代码生成器 │ │ │ ├── abstract-generator.ts # 抽象基类 │ │ │ ├── typescript-generator.ts # TypeScript 生成器 │ │ │ ├── go-generator.ts # Go 生成器 │ │ │ ├── python-generator.ts # Python 生成器 │ │ │ └── lua-generator.ts # Lua 生成器 │ │ └── utils/ # 类型检查工具 │ │ ├── type-utils.ts # 类型工具函数 │ │ ├── type-comparator.ts # 类型比较器 │ │ ├── type-checker.ts # 类型检查器 │ │ └── diagnostics.ts # 诊断信息 │ └── node-graph/ # 节点编辑器 │ ├── components/ # React 组件 │ ├── utils/ # 工具函数 │ └── types.ts # 类型定义 ├── app/ # Next.js 应用 │ ├── language/ # 代码生成器测试页面 │ ├── node-graph/ # 节点编辑器页面 │ └── test/ # 测试页面 ├── doc/ # 文档 │ ├── AST-API-Reference.md │ ├── TYPE-CHECK-API_Reference.md │ └── TYPE_CHECK_TEST_REFERENCE.md ├── test/ # 自动化测试 │ ├── test-generator/ # 代码生成器测试 │ └── test-node-graph/ # 节点编辑器测试 └── package.json ``` ## 🚀 快速开始 ### 安装依赖 ```bash npm install ``` ### 运行开发服务器 ```bash npm run dev ``` 访问 http://localhost:3000 查看应用。 ## 📖 使用指南 ### 1. 代码生成器使用 #### TypeScript 代码生成 ```typescript import { TypeScriptGenerator } from '@/src/language/generator/typescript-generator'; import { typescriptConfig } from '@/src/language/config/language-config'; const generator = new TypeScriptGenerator(typescriptConfig, { indentSize: 2, useSpaces: true, semicolons: 'always', }); const code = generator.generate(ast); console.log(code); ``` #### Python 代码生成 ```typescript import { PythonGenerator } from '@/src/language/generator/python-generator'; const generator = new PythonGenerator(pythonConfig); const code = generator.generate(ast); ``` #### Go 代码生成 ```typescript import { GoGenerator } from '@/src/language/generator/go-generator'; const generator = new GoGenerator(goConfig); const code = generator.generate(ast); ``` #### Lua 代码生成 ```typescript import { LuaGenerator } from '@/src/language/generator/lua-generator'; const generator = new LuaGenerator(luaConfig); const code = generator.generate(ast); ``` ### 2. 类型检查器使用 ```typescript import { TypeChecker } from '@/src/language/utils/type-checker'; const checker = new TypeChecker(); const result = checker.check(ast); console.log('诊断信息:', result.diagnostics); console.log('符号表:', result.symbolTable); ``` ### 3. 节点编辑器使用 ```tsx import NodeEditor from '@/src/node-graph'; import { allNodeDefinitions } from '@/src/node-graph/examples'; export default function EditorPage() { return (