Open
Conversation
There was a problem hiding this comment.
Pull request overview
Adds a new MiniML interpreter project under Oderiy/, including AST, parser (Angstrom), pretty-printer, interpreter with a step limit, a REPL executable, and a fairly comprehensive test suite (ppx_expect + cram + an additional standalone test runner).
Changes:
- Implemented core MiniML components: AST, parser, printer, interpreter, and a REPL.
- Added unit/expect tests, cram tests, and sample
.minimlprograms. - Introduced Dune/OPAM project scaffolding, formatting config, and licensing files.
Reviewed changes
Copilot reviewed 35 out of 38 changed files in this pull request and generated 15 comments.
Show a summary per file
| File | Description |
|---|---|
| Oderiy/tests/qcheck_test.mli | Test module interface header. |
| Oderiy/tests/qcheck_test.ml | Standalone boolean test runner for parser/printer/interpreter behaviors. |
| Oderiy/tests/print_test.mli | Expect-test module interface header. |
| Oderiy/tests/print_test.ml | ppx_expect tests for pretty-printer output. |
| Oderiy/tests/parser_test.mli | Expect-test module interface header. |
| Oderiy/tests/parser_test.ml | ppx_expect tests for parsing and round-tripping via printer. |
| Oderiy/tests/miniml_tests.t | Cram tests exercising REPL on sample programs/expressions. |
| Oderiy/tests/interpret_test.mli | Expect-test module interface header. |
| Oderiy/tests/interpret_test.ml | ppx_expect tests for evaluation and error cases. |
| Oderiy/tests/fix_factorial.miniml | Sample MiniML program using manual fix combinator. |
| Oderiy/tests/fibonacci.miniml | Sample MiniML fibonacci program. |
| Oderiy/tests/factorial.miniml | Sample MiniML factorial program. |
| Oderiy/tests/dune | Test suite definitions (inline tests, cram, plus a qcheck_test executable). |
| Oderiy/tests/builtin_fix.miniml | Sample MiniML program using built-in fix. |
| Oderiy/tests/.gitignore | Ignores generated lam*.txt files under tests. |
| Oderiy/lib/print.mli | Printer public API. |
| Oderiy/lib/print.ml | AST pretty-printer implementation. |
| Oderiy/lib/parser.mli | Parser public API/types. |
| Oderiy/lib/parser.ml | Angstrom-based MiniML parser implementation. |
| Oderiy/lib/interpret.mli | Interpreter public API/types. |
| Oderiy/lib/interpret.ml | Interpreter implementation with environments, closures, and step counting. |
| Oderiy/lib/dune | Dune library stanza for the mml library. |
| Oderiy/lib/ast.mli | AST type definitions and operator set. |
| Oderiy/lib/ast.ml | AST implementation (type definitions). |
| Oderiy/dune-project | Dune project/package metadata and dependencies. |
| Oderiy/dune | Global build flags configuration. |
| Oderiy/bin/dune | Dune stanza for REPL executable. |
| Oderiy/bin/REPL.mli | REPL module interface header. |
| Oderiy/bin/REPL.ml | REPL entrypoint reading stdin and executing parse_and_run. |
| Oderiy/Oderiy.opam.template | OPAM template with pin-depends note. |
| Oderiy/Oderiy.opam | Generated OPAM file for the package. |
| Oderiy/Makefile | Developer workflow targets (build/test/fmt/lint/coverage/etc.). |
| Oderiy/COPYING.LESSER | LGPLv3 license text. |
| Oderiy/COPYING.CC0 | CC0 license text. |
| Oderiy/COPYING | GPLv3 license text. |
| Oderiy/.zanuda | Zanuda configuration. |
| Oderiy/.ocamlformat | ocamlformat configuration. |
| Oderiy/.gitignore | Repo ignore rules for build artifacts and tooling. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
Документация и тестовое покрытие (92.76%) должны скоро появиться. https://kakadu.github.io/fp25/docs/Oderiy https://kakadu.github.io/fp25/cov/Oderiy 2026-02-24 21:25 |
|
Linter report from 2026-02-24 21:26, for mini language Oderiy |
Owner
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

interpreter for MiniML
author - Oderiy Yaroslav