导航菜单
切换导航
[ ](/)
[ 登录 ](/login?return_to=https%3A%2F%2Fgithub.com%2Fbegoon%2Frapira)
外观设置
平台
-AI 代码创作
- GitHub Copilot:借助 AI 编写更优质代码
- GitHub Spark:构建并部署智能应用
- GitHub Models:管理并比较提示词
- MCP Registry(新):集成外部工具
-开发者工作流
- Actions:自动化任何工作流
- Codespaces:即时开发环境
- Issues:规划并跟踪工作
- Code Review:管理代码变更
-应用程序安全
- GitHub Advanced Security:查找并修复漏洞
- 代码安全:在构建过程中保障代码安全
- 密钥保护:防患于未然,阻止信息泄露
-探索
- 为何选择 GitHub
- 文档
- 博客
- 更新日志
- 市场
查看所有功能
解决方案
-按公司规模划分
- 企业
- 中小型团队
- 初创企业
- 非营利组织
-按用例划分
- 应用现代化
- DevSecOps
- DevOps
- CI/CD
- 查看所有用例
-按行业划分
- 医疗保健
- 金融服务
- 制造业
- 政府部门
- 查看所有行业
查看所有解决方案
资源
-按主题探索
- AI
- 软件开发
- DevOps
- 安全
- 查看所有主题
-按类型探索
- 客户案例
- 活动与网络研讨会
- 电子书与报告
- 商业洞察
- GitHub Skills
-支持与服务
- 文档
- 客户支持
- 社区论坛
- 信任中心
- 合作伙伴
查看所有资源
开源
-社区
- GitHub Sponsors:资助开源开发者
-项目
- Security Lab
- Maintainer Community
- Accelerator
- GitHub Stars
- Archive Program
-仓库
- 主题
- 热门趋势
- 集合
企业
-企业解决方案
- 企业平台:由 AI 驱动的开发者平台
-可用附加组件
- GitHub Advanced Security:企业级安全功能
- Copilot for Business:企业级 AI 功能
- 高级支持:企业级 24/7 支持
[定价]
搜索或跳转至...
搜索代码、仓库、用户、问题、拉取请求...
搜索
清除
搜索语法提示
提供反馈
我们会阅读每一条反馈,并认真对待您的意见。
包含我的电子邮件地址,以便能与我联系
取消 提交反馈
保存的搜索
使用保存的搜索可更快地筛选结果
名称
查询
要查看所有可用的限定符,请参阅我们的文档。
取消 创建保存的搜索
[ 登录 ](/login?return_to=https%3A%2F%2Fgithub.com%2Fbegoon%2Frapira)
[ 注册 ](/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E&source=header-repo&source_repo=begoon%2Frapira)
外观设置
重置焦点
您已在另一个标签页或窗口中登录。[重新加载]()以刷新您的会话。
您已在另一个标签页或窗口中注销。[重新加载]()以刷新您的会话。
您已在另一个标签页或窗口中切换账户。[重新加载]()以刷新您的会话。 关闭提醒
{{ message }}
[ begoon ](/begoon) /[rapira](/begoon/rapira)公开
- 通知 您必须登录才能更改通知设置
- 复刻 0
- 加星 6
- 代码
- 问题 0
- 拉取请求 0
- 操作
- 项目
- 安全与质量 0
- 洞察
其他导航选项
- 代码
- 问题
- 拉取请求
- 操作
- 项目
- 安全与质量
- 洞察
begoon/rapira
主分支
[分支][标签]
前往文件
代码
打开更多操作菜单
文件夹和文件
| 名称 | 名称 | 最后提交信息 | 最后提交日期 |
| --- | --- | --- | --- |
最新提交
历史记录
仓库文件导航
- README
- MIT 许可证
Rapira
这是一个用于РАПИРА的 TypeScript / Bun 解释器。РАПИРА 是苏联在 20 世纪 80 年代初由 G. A. Zvenigorodsky 设计的教育编程语言,是 _Школьница_(Shkolnitsa)学校计算机系统的一部分,用于 Агат(Agat)微型计算机。
▶ 在浏览器中试用:
▶ 在终端中运行:`npx rapira factorial.rap`
ФУНК ФАКТ (Н);
ИМЕНА: Р;
1 -> Р;
ДЛЯ И ОТ 1 ДО Н ::
Р * И -> Р
ВСЕ
РЕЗ: Р
КНЦ;
ДЛЯ Н ОТ 0 ДО 6 ::
? "ФАКТ(", Н, ") = ", ФАКТ(Н)
ВСЕ;
包含内容
-解释器核心(`src/`):词法分析器、解析器和树遍历求值器。忠实于 1985 年的 Агат方言,使用俄语关键字,标识符大小写不敏感,支持 `(* … *)` 块注释、`;` 语句分隔符、三种复合类型(元组 `< >`、集合 `<* *>`、记录 `<¤ ¤>`)、三箭头过程参数方案(`name` / `name =>` / `<=> name`),函数结果使用尾随 `РЕЗ:`。
-命令行界面(CLI)(`cli/`):`rapira FILE.rap` 可运行程序,`rapira` 可进入多行 REPL,`--svg PATH` 可将海龟图形捕获为 SVG。
-Web 游乐场(`web/`):采用原生 HTML + CodeMirror 6 + Web Worker,支持亮/暗主题,可从 `tests/snippets/` 加载示例。使用 `bun build` 进行构建,输出文件位于 `docs/` 中,可直接用于 GitHub Pages。在线地址为 。
-代码片段测试管道(`tests/snippets/`):每次运行 `bun test` 时,`.rap` 文件会与同级的 `.expected.txt` 或 `.expected.svg` 文件进行差异比较。
-Чертёжник 海龟:苏联的“绘图员”执行器,以普通 Rapira 过程的形式提供(`ВПЕРЕД`、`НАЗАД`、`НАПРАВО`、`НАЛЕВО`、`ПЕРО_ВНИЗ`、`ПЕРО_ВВЕРХ`、`ДОМОЙ`、`В_ТОЧКУ`、`КУРС`)。它基于与文档化图形原语(`ЛИН`、`ПРЯМ`、`ОБЛ` 等)相同的 `GfxEvent` 流,因此 CLI 的 SVG 渲染器和游乐场的画布渲染器会绘制出相同的输出。
安装
CLI 以独立的 Node 包形式提供。使用 Node ≥ 18 时,无需克隆仓库即可运行:
npx rapira FILE.rap # 运行程序
npx rapira FILE.rap --svg out.svg # 捕获海龟图形
npx rapira # 多行 REPL(按 Ctrl-D 退出)
也可全局安装:
npm install -g rapira
rapira FILE.rap
开发
本地开发需要使用 Bun(它可以原生运行测试和开发服务器):
bun install
bun test # 9 个文件共 129 个测试
bun run cli/index.ts examples/factorial.rap # 计算 ФАКТ(0..7)
bun run dev # 在 http://localhost:10000 启动游乐场
bun run cli:build # 将 CLI 打包到 dist/rapira.js
如果安装了 [`just`],可以使用相应的指令,如 `just test`、`just dev`、`just run examples/turtle_star.rap --svg star.svg` 等。
示例
| 文件 | 展示内容 |
| --- | --- |
| `examples/hello.rap` | 经典的 `ВЫВОД: "Здравствуй, мир!"` |
| `examples/factorial.rap` | 带尾随 `РЕЗ:` 的 `ФУНК`、`ДЛЯ … ОТ … ДО` 循环和整数运算 |
| `examples/turtle_square.rap` | Чертёжник 通过 `ПОВТОР … РАЗА :: ВПЕРЕД(50); НАПРАВО(90)` 绘制正方形 |
| `examples/turtle_star.rap` | 通过单个循环绘制五角星 |
| `examples/io_files.rap` | `ОТКРЫТЬ … КАК`、`ВЫВОД В ФАЙЛ`、`ВВОД ИЗ ФАЙЛА ТЕКСТОВ`、`ЗАКРЫТЬ` |
| `examples/io_seek.rap` | `ПОЗИЦИЯ Ф = N` 用于随机访问文件读取 |
文档
- [`SPEC.md`]:实现规范,包括词法结构、语句、运算符、内置函数,以及已完成和待完成的部分。
- [`RAPIRA.md`]:1985 年的规范(Фг.00031-01 35 01),从 [agatcomp.ru 的 KOI - 8 源文件] 重新格式化为 Markdown。
- [`CLAUDE.md`]:关于该代码库开发的入门指南。
许可证
[MIT] © Alexander Demin
关于
Rapira 编程语言 / Язык программирования Рапира
[demin.ws/rapira/]
资源
- Readme
- 许可证:MIT 许可证
哎呀!
加载时出现错误。[请重新加载此页面]()
[ 活动]
加星
[6颗星]
关注者
[0位关注者]
复刻
[0次复刻]
[ 举报仓库 ]
[发布版本]
未发布任何版本
[包 0]
哎呀!
加载时出现错误。[请重新加载此页面]()
[贡献者]
* * *
哎呀!
加载时出现错误。[请重新加载此页面]()
语言
- [ TypeScript 92.3% ]
- [ JavaScript 4.6% ]
- [ Just 1.5% ]
- [ CSS 1.4% ]
- [ HTML 0.2% ]
页脚
(C) 2026 GitHub, Inc.
页脚导航
- [条款]
- [隐私]
- [安全]
- [状态]
- [社区]
- [文档]
- [联系我们]
- 管理 Cookie
- 不共享我的个人信息
此时您无法执行该操作。