OpenRewrite language module for Pascal

Recursive descent parser with lossless round-trip fidelity for pure
Pascal syntax (ISO 7185 / Turbo Pascal). Includes LST node definitions,
visitor, printer, remote serialization support, and a standalone LST
generator for Moderne CLI integration. 65 parser tests covering programs,
units, control flow, expressions, types, and more.
This commit is contained in:
t3hn3rd committed 2026-03-10 23:32:06 +00:00
commit 8915c205cd
37 files changed
+12795

No files matched your search

+35
View File
@@ -0,0 +1,35 @@
plugins {
id("java-library")
}
java {
toolchain {
languageVersion.set(JavaLanguageVersion.of(17))
}
}
repositories {
mavenCentral()
maven {
url = uri("https://oss.sonatype.org/content/repositories/snapshots/")
}
}
val rewriteVersion = "8.45.0"
dependencies {
compileOnly("com.google.auto.service:auto-service-annotations:1.1.1")
annotationProcessor("com.google.auto.service:auto-service:1.1.1")
implementation(platform("org.openrewrite:rewrite-bom:${rewriteVersion}"))
implementation("org.openrewrite:rewrite-remote:0.28.0") {
exclude(group = "org.openrewrite", module = "rewrite-pascal")
}
implementation("org.openrewrite:rewrite-core")
implementation("org.openrewrite:rewrite-java")
implementation(project(":rewrite-pascal"))
}
tasks.withType<JavaCompile> {
options.encoding = "UTF-8"
}
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,37 @@
package org.openrewrite.pascal.remote;
import com.google.auto.service.AutoService;
import org.openrewrite.pascal.tree.Pas;
import org.openrewrite.remote.Receiver;
import org.openrewrite.remote.Sender;
import org.openrewrite.remote.SenderReceiverProvider;
import org.openrewrite.remote.Validator;
@SuppressWarnings("rawtypes")
@AutoService(SenderReceiverProvider.class)
public class PascalSenderReceiverProvider implements SenderReceiverProvider<Pas> {
static {
Pascal.register();
}
@Override
public Class<Pas> getType() {
return Pas.class;
}
@Override
public Sender<Pas> newSender() {
return new PascalSender();
}
@Override
public Receiver<Pas> newReceiver() {
return new PascalReceiver();
}
@Override
public Validator newValidator() {
return Validator.fromVisitor(new PascalValidator<>());
}
}
@@ -0,0 +1,4 @@
@NullMarked
package org.openrewrite.pascal.remote;
import org.jspecify.annotations.NullMarked;