Markdown Converter
Agent skill for markdown-converter
Vernix is an interpreter for a Scala-like mini programming language built with Scala 3.7.2, using ZIO, cats, fastparse, and spire libraries. The project provides a DSL for creating programs that can be compiled to expressions and executed.
Sign in to like and favorite skills
Vernix is an interpreter for a Scala-like mini programming language built with Scala 3.7.2, using ZIO, cats, fastparse, and spire libraries. The project provides a DSL for creating programs that can be compiled to expressions and executed.
Always reference these instructions first and fallback to search or bash commands only when you encounter unexpected information that does not match the info here.
wget https://github.com/sbt/sbt/releases/download/v1.10.6/sbt-1.10.6.zip unzip sbt-1.10.6.zip export PATH=$PATH:$(pwd)/sbt/bin
sbt --versionsbt compile
sbt package
target/scala-3.7.2/vernix_3-0.1.0-SNAPSHOT.jarThe project has two main classes:
Expr01 (Primary demonstration application):
sbt "runMain io.vernix.Expr01"
28Parsing (Parser development, currently incomplete):
sbt "runMain io.vernix.Parsing"
Failure(scala.NotImplementedError: an implementation is missing)Example usage:sbt console
import io.vernix.* val test = Program.value(42) // Exit with :quit
sbt testAfter making changes, ALWAYS validate the core functionality:
sbt compile - must succeedsbt "runMain io.vernix.Expr01" - verify output shows result 28sbt console, import packages, create a simple Programsbt package - JAR should be created# Full validation sequence (takes ~45 seconds total) sbt compile && sbt "runMain io.vernix.Expr01" && sbt package
sbt compile - 30 seconds - NEVER CANCELsbt package - 5 secondssbt "runMain <class>" - 5-6 secondssbt console - 10 seconds to startsbt test - 1-5 seconds (no tests exist)Key tasks you can use:
compile - Compile source codepackage - Create JAR filerun / runMain - Execute main classesconsole - Start Scala REPL with project classpathclean - Clean build artifactsdoc - Generate API documentationLocated in
src/main/scala/io/vernix/:
Program[A] trait and DSL operationsExpr[A] trait for compiled expressionsStatements[F[_]] trait extending Ops[F]Ops[F[_]] trait defining core operations with ZIO and Try implementationsio.vernix.Expr01 (working), io.vernix.Parsing (incomplete)import io.vernix.* to access all DSL componentsProgram.value(x) to create constant programsProgram.variable[T]("name") for variable references*> (sequence) and arithmetic operators.compile returning Try[Expr[A]].apply[F] where F is Task, Try, etc._ vs ? wildcardssbt runMain instead of java -jar (missing classpath)target/scala-3.7.2/classes/target/scala-3.7.2/vernix_3-0.1.0-SNAPSHOT.jartarget/scala-3.7.2/zinc/├── build.sbt # SBT build configuration ├── project/ │ └── build.properties # SBT version: 1.11.5 ├── src/main/scala/io/vernix/ # Main source code ├── target/ # Build artifacts (gitignored) ├── README.md # "Interpreter for a scala-like mini programming language" └── .gitignore # Standard Scala/IntelliJ exclusions
# 1. Setup (first time only) wget https://github.com/sbt/sbt/releases/download/v1.10.6/sbt-1.10.6.zip unzip sbt-1.10.6.zip export PATH=$PATH:$(pwd)/sbt/bin # 2. Development cycle sbt compile # 30 seconds - NEVER CANCEL sbt "runMain io.vernix.Expr01" # Verify functionality # 3. Interactive testing sbt console import io.vernix.* val prog = Program.value(42) + Program.value(8) :quit # 4. Package for distribution sbt package