Skip to content

Oderiy#24

Open
XRenso wants to merge 3 commits intoKakadu:masterfrom
XRenso:Oderiy
Open

Oderiy#24
XRenso wants to merge 3 commits intoKakadu:masterfrom
XRenso:Oderiy

Conversation

@XRenso
Copy link

@XRenso XRenso commented Feb 24, 2026

interpreter for MiniML
author - Oderiy Yaroslav

Copilot AI review requested due to automatic review settings February 24, 2026 18:11
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 .miniml programs.
  • 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.

@github-actions
Copy link

Документация и тестовое покрытие (92.76%) должны скоро появиться.

https://kakadu.github.io/fp25/docs/Oderiy

https://kakadu.github.io/fp25/cov/Oderiy

2026-02-24 21:25

Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Zanuda-linter report

@github-actions
Copy link

Linter report from 2026-02-24 21:26, for mini language Oderiy

@Kakadu
Copy link
Owner

Kakadu commented Mar 1, 2026

От Qwen

image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants