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:
commit
8915c205cd
37 files changed
+12795
No files matched your search
@@ -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
File diff suppressed because it is too large.
Load diff
+945
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
+37
@@ -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<>());
|
||||
}
|
||||
}
|
||||
+304
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,4 @@
|
||||
@NullMarked
|
||||
package org.openrewrite.pascal.remote;
|
||||
|
||||
import org.jspecify.annotations.NullMarked;
|
||||
Reference in new issue
Block a user