Projektrahmen: Cargo-Workspace, README und PLAN
Workspace mit sechs Crates (tb-frontend, tb-vm, tb-runtime, tb-ui, tb-cli, tb-ide) als Geruest fuer die Re-Implementierung des DOS-BASIC-Dialekts. Binaries: tbdos (IDE/TUI) und tbdosc (Standalone-Compiler). PLAN.md dokumentiert Phasen, Explorations- schritte und die Abwaegung der VM-/Runtime-Optionen (Entscheidung: eigene Bytecode-VM, TBVM). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
4
crates/tb-frontend/src/ast.rs
Normal file
4
crates/tb-frontend/src/ast.rs
Normal file
@@ -0,0 +1,4 @@
|
||||
//! AST-Definitionen: Module, Prozeduren (`SUB`/`FUNCTION`), Anweisungen, Ausdrücke,
|
||||
//! benutzerdefinierte Typen (`TYPE … END TYPE`), Deklarationen.
|
||||
|
||||
// Platzhalter — wird in Phase 1 ausgearbeitet (siehe PLAN.md)
|
||||
13
crates/tb-frontend/src/lexer.rs
Normal file
13
crates/tb-frontend/src/lexer.rs
Normal file
@@ -0,0 +1,13 @@
|
||||
//! Lexer: zerlegt Quelltext in Tokens.
|
||||
//!
|
||||
//! Besonderheiten des BASIC-Dialekts, die hier abgebildet werden müssen:
|
||||
//! - Typ-Suffixe an Bezeichnern und Literalen (`%`, `&`, `!`, `#`, `$`, `@`)
|
||||
//! - Zeilennummern und Labels
|
||||
//! - Keywords sind case-insensitiv, der Editor normalisiert später auf Großschreibung
|
||||
//! - Fortsetzung/Trennung von Anweisungen mit `:` und Kommentare mit `'` und `REM`
|
||||
|
||||
#[derive(Debug, Clone, PartialEq)]
|
||||
pub enum Token {
|
||||
// Platzhalter — wird in Phase 1 ausgearbeitet (siehe PLAN.md)
|
||||
Eof,
|
||||
}
|
||||
17
crates/tb-frontend/src/lib.rs
Normal file
17
crates/tb-frontend/src/lib.rs
Normal file
@@ -0,0 +1,17 @@
|
||||
//! Frontend des Terminal-Basic-Compilers.
|
||||
//!
|
||||
//! Enthält Lexer, Parser, AST-Definitionen und die semantische Analyse
|
||||
//! (Symboltabellen, Typprüfung, implizite Deklarationen, `DEFINT`-Regeln usw.).
|
||||
//! Ausgabe des Frontends ist ein typgeprüfter AST bzw. eine Zwischen-
|
||||
//! repräsentation (IR), die von `tb-vm` in Bytecode übersetzt wird.
|
||||
|
||||
pub mod lexer;
|
||||
pub mod parser;
|
||||
pub mod ast;
|
||||
|
||||
/// Quelltextposition für Diagnostik (1-basiert, wie im klassischen IDE-Vorbild).
|
||||
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
|
||||
pub struct SourcePos {
|
||||
pub line: u32,
|
||||
pub column: u32,
|
||||
}
|
||||
6
crates/tb-frontend/src/parser.rs
Normal file
6
crates/tb-frontend/src/parser.rs
Normal file
@@ -0,0 +1,6 @@
|
||||
//! Parser: baut aus dem Tokenstrom den AST.
|
||||
//!
|
||||
//! Der Parser arbeitet zeilenorientiert (eine logische Zeile = eine oder mehrere
|
||||
//! Anweisungen), wie es das IDE-Vorbild mit seiner Zeile-für-Zeile-Prüfung tut.
|
||||
|
||||
// Platzhalter — wird in Phase 1 ausgearbeitet (siehe PLAN.md)
|
||||
Reference in New Issue
Block a user