mirror of
https://github.com/Mercantec-GHC/h4-projekt-gruppe-0-sm.git
synced 2025-04-27 16:24:07 +02:00
set deno workspace
This commit is contained in:
parent
84e845a4bf
commit
f9e14e5056
@ -1,5 +1,4 @@
|
||||
import { AstId, File as CtxFile, IdentId } from "../ids.ts";
|
||||
import { Span } from "../diagnostics.ts";
|
||||
import { AstId, File as CtxFile, IdentId, Span } from "@slige/common";
|
||||
|
||||
export type File = {
|
||||
stmts: Stmt[];
|
||||
|
@ -1,5 +1,4 @@
|
||||
import { Span } from "../diagnostics.ts";
|
||||
import { AstId, Ids } from "../ids.ts";
|
||||
import { AstId, Ids, Span } from "@slige/common";
|
||||
import {
|
||||
Expr,
|
||||
ExprKind,
|
||||
|
4
slige/compiler/ast/deno.jsonc
Normal file
4
slige/compiler/ast/deno.jsonc
Normal file
@ -0,0 +1,4 @@
|
||||
{
|
||||
"name": "@slige/ast",
|
||||
"exports": "./mod.ts",
|
||||
}
|
@ -1,5 +1,4 @@
|
||||
import { Ctx } from "../ctx.ts";
|
||||
import { exhausted, todo } from "../util.ts";
|
||||
import { Ctx, exhausted, todo } from "@slige/common";
|
||||
import { Block, Item } from "./ast.ts";
|
||||
|
||||
export function itemToString(ctx: Ctx, item: Item): string {
|
||||
|
@ -1,4 +1,5 @@
|
||||
import { exhausted } from "../util.ts";
|
||||
import { exhausted } from "@slige/common";
|
||||
|
||||
import {
|
||||
AnonStructTy,
|
||||
ArrayExpr,
|
||||
|
@ -1,11 +1,16 @@
|
||||
import * as ast from "../ast/mod.ts";
|
||||
import { Ctx, File } from "../ctx.ts";
|
||||
import { Span } from "../diagnostics.ts";
|
||||
import { AstId, IdMap } from "../ids.ts";
|
||||
import { Resols } from "../resolve/resolver.ts";
|
||||
import { tyToString } from "../ty/to_string.ts";
|
||||
import { Ty } from "../ty/ty.ts";
|
||||
import { exhausted, Res, todo } from "../util.ts";
|
||||
import * as ast from "@slige/ast";
|
||||
import {
|
||||
AstId,
|
||||
Ctx,
|
||||
exhausted,
|
||||
File,
|
||||
IdMap,
|
||||
Res,
|
||||
Span,
|
||||
todo,
|
||||
} from "@slige/common";
|
||||
import { Resols } from "@slige/resolve";
|
||||
import { Ty, tyToString } from "@slige/ty";
|
||||
|
||||
export class Checker {
|
||||
private itemTys = new IdMap<AstId, Ty>();
|
||||
|
4
slige/compiler/check/deno.jsonc
Normal file
4
slige/compiler/check/deno.jsonc
Normal file
@ -0,0 +1,4 @@
|
||||
{
|
||||
"name": "@slige/check",
|
||||
"exports": "./mod.ts",
|
||||
}
|
1
slige/compiler/check/mod.ts
Normal file
1
slige/compiler/check/mod.ts
Normal file
@ -0,0 +1 @@
|
||||
export * from "./checker.ts";
|
@ -1,4 +1,4 @@
|
||||
import * as ast from "./ast/mod.ts";
|
||||
import * as ast from "@slige/ast";
|
||||
import {
|
||||
Pos,
|
||||
prettyPrintReport,
|
4
slige/compiler/common/deno.jsonc
Normal file
4
slige/compiler/common/deno.jsonc
Normal file
@ -0,0 +1,4 @@
|
||||
{
|
||||
"name": "@slige/common",
|
||||
"exports": "./mod.ts",
|
||||
}
|
@ -31,7 +31,7 @@ export class Ids<IdType extends IdBase> {
|
||||
export class IdMap<Id extends IdBase, V> implements Map<Id, V> {
|
||||
private map = new Map<IdRaw<Id>, V>();
|
||||
|
||||
set(id: Id, val: V) {
|
||||
set(id: Id, val: V): this {
|
||||
this.map.set(idRaw(id), val);
|
||||
return this;
|
||||
}
|
9
slige/compiler/common/mod.ts
Normal file
9
slige/compiler/common/mod.ts
Normal file
@ -0,0 +1,9 @@
|
||||
export * from "./ids.ts";
|
||||
export * from "./ctx.ts";
|
||||
export * from "./util.ts";
|
||||
export * from "./diagnostics.ts";
|
||||
|
||||
export * as ids from "./ids.ts";
|
||||
export * as ctx from "./ctx.ts";
|
||||
export * as util from "./util.ts";
|
||||
export * as diagnostics from "./diagnostics.ts";
|
@ -42,7 +42,7 @@ export const ControlFlow = {
|
||||
Continue: <V>(val: V): Continue<V> => ({ break: false, val }),
|
||||
} as const;
|
||||
|
||||
export const range = (length: number) => (new Array(length).fill(0));
|
||||
export const range = (length: number): number[] => (new Array(length).fill(0));
|
||||
|
||||
export const strictEq = <T>(a: T, b: T): boolean => a === b;
|
||||
|
@ -1,5 +1,14 @@
|
||||
{
|
||||
"workspace": ["./ast", "./check", "./middle", "./parse", "./resolve", "./ty", "./common"],
|
||||
"lint": {
|
||||
"rules": {
|
||||
"exclude": [
|
||||
"verbatim-module-syntax",
|
||||
"no-unused-vars"
|
||||
],
|
||||
}
|
||||
},
|
||||
"fmt": {
|
||||
"indentWidth": 4
|
||||
}
|
||||
},
|
||||
}
|
||||
|
@ -1,7 +1,7 @@
|
||||
import * as path from "jsr:@std/path";
|
||||
import { Parser } from "./parse/parser.ts";
|
||||
import * as ast from "./ast/mod.ts";
|
||||
import { Ctx, File } from "./ctx.ts";
|
||||
import { Ctx, File } from "@slige/common";
|
||||
import { Resolver } from "./resolve/resolver.ts";
|
||||
import { Checker } from "./check/checker.ts";
|
||||
import { AstLowerer } from "./middle/ast_lower.ts";
|
||||
|
@ -1,10 +1,8 @@
|
||||
import * as ast from "../ast/mod.ts";
|
||||
import { Checker } from "../check/checker.ts";
|
||||
import { Ctx } from "../ctx.ts";
|
||||
import { IdMap, Ids } from "../ids.ts";
|
||||
import { LocalId as ReLocalId, Resols } from "../resolve/resolver.ts";
|
||||
import { Ty } from "../ty/ty.ts";
|
||||
import { exhausted, Res, todo } from "../util.ts";
|
||||
import * as ast from "@slige/ast";
|
||||
import { Checker } from "@slige/check";
|
||||
import { Ctx, exhausted, IdMap, Ids, Res, todo } from "@slige/common";
|
||||
import { LocalId as ReLocalId, Resols } from "@slige/resolve";
|
||||
import { Ty } from "@slige/ty";
|
||||
import { BinaryType, Operand, StmtKind, TerKind } from "./mir.ts";
|
||||
import { Block, BlockId, Fn, Local, LocalId, RVal, Stmt, Ter } from "./mir.ts";
|
||||
|
||||
|
4
slige/compiler/middle/deno.jsonc
Normal file
4
slige/compiler/middle/deno.jsonc
Normal file
@ -0,0 +1,4 @@
|
||||
{
|
||||
"name": "@slige/middle",
|
||||
"exports": "./mod.ts",
|
||||
}
|
@ -1,6 +1,5 @@
|
||||
import { Span } from "../diagnostics.ts";
|
||||
import { IdBase, IdMap } from "../ids.ts";
|
||||
import { Ty } from "../ty/ty.ts";
|
||||
import { IdBase, IdMap } from "@slige/common";
|
||||
import { Ty } from "@slige/ty";
|
||||
|
||||
export type Fn = {
|
||||
label: string;
|
||||
|
4
slige/compiler/parse/deno.jsonc
Normal file
4
slige/compiler/parse/deno.jsonc
Normal file
@ -0,0 +1,4 @@
|
||||
{
|
||||
"name": "@slige/parse",
|
||||
"exports": "./mod.ts",
|
||||
}
|
@ -1,6 +1,4 @@
|
||||
import { Ctx, File } from "../ctx.ts";
|
||||
import { Pos, Span } from "../diagnostics.ts";
|
||||
import { ControlFlow, range } from "../util.ts";
|
||||
import { ControlFlow, Ctx, File, Pos, range, Span } from "@slige/common";
|
||||
import { Token, TokenIter } from "./token.ts";
|
||||
|
||||
export class Lexer implements TokenIter {
|
||||
|
0
slige/compiler/parse/mod.ts
Normal file
0
slige/compiler/parse/mod.ts
Normal file
@ -1,15 +1,11 @@
|
||||
import {
|
||||
AnonFieldDef,
|
||||
BinaryType,
|
||||
ExprField,
|
||||
PathSegment,
|
||||
RefType,
|
||||
UnaryType,
|
||||
} from "../ast/ast.ts";
|
||||
import {
|
||||
AssignType,
|
||||
BinaryType,
|
||||
Block,
|
||||
Cx,
|
||||
Expr,
|
||||
ExprField,
|
||||
ExprKind,
|
||||
File,
|
||||
GenericParam,
|
||||
@ -19,16 +15,16 @@ import {
|
||||
Param,
|
||||
Pat,
|
||||
Path,
|
||||
PathSegment,
|
||||
PatKind,
|
||||
RefType,
|
||||
Stmt,
|
||||
StmtKind,
|
||||
Ty,
|
||||
TyKind,
|
||||
} from "../ast/ast.ts";
|
||||
import { Cx } from "../ast/cx.ts";
|
||||
import { Ctx, File as CtxFile } from "../ctx.ts";
|
||||
import { Pos, Span } from "../diagnostics.ts";
|
||||
import { Res, todo } from "../util.ts";
|
||||
UnaryType,
|
||||
} from "@slige/ast";
|
||||
import { Ctx, File as CtxFile, Pos, Res, Span, todo } from "@slige/common";
|
||||
import { Lexer } from "./lexer.ts";
|
||||
import { TokenIter } from "./token.ts";
|
||||
import { SigFilter } from "./token.ts";
|
||||
|
@ -1,5 +1,4 @@
|
||||
import { Span } from "../diagnostics.ts";
|
||||
import { IdentId } from "../ids.ts";
|
||||
import { IdentId, Span } from "@slige/common";
|
||||
|
||||
export type Token = {
|
||||
type: string;
|
||||
|
@ -1,6 +1,5 @@
|
||||
import * as ast from "../ast/mod.ts";
|
||||
import { IdBase, IdentId, IdMap } from "../ids.ts";
|
||||
import { Res } from "../util.ts";
|
||||
import * as ast from "@slige/ast";
|
||||
import { IdBase, IdentId, IdMap, Res } from "@slige/common";
|
||||
|
||||
export interface Syms {
|
||||
getVal(ident: ast.Ident): Resolve;
|
||||
|
4
slige/compiler/resolve/deno.jsonc
Normal file
4
slige/compiler/resolve/deno.jsonc
Normal file
@ -0,0 +1,4 @@
|
||||
{
|
||||
"name": "@slige/resolve",
|
||||
"exports": "./mod.ts",
|
||||
}
|
2
slige/compiler/resolve/mod.ts
Normal file
2
slige/compiler/resolve/mod.ts
Normal file
@ -0,0 +1,2 @@
|
||||
export * from "./resolver.ts";
|
||||
export * from "./cx.ts";
|
@ -1,7 +1,5 @@
|
||||
import * as ast from "../ast/mod.ts";
|
||||
import { Ctx, File } from "../ctx.ts";
|
||||
import { AstId, IdMap, Ids } from "../ids.ts";
|
||||
import { exhausted, todo } from "../util.ts";
|
||||
import * as ast from "@slige/ast";
|
||||
import { AstId, Ctx, exhausted, File, IdMap, Ids, todo } from "@slige/common";
|
||||
import {
|
||||
FnSyms,
|
||||
LocalId,
|
||||
@ -156,7 +154,7 @@ export class Resolver implements ast.Visitor {
|
||||
}
|
||||
|
||||
visitPathPat(pat: ast.Pat, kind: ast.PathPat): ast.VisitRes {
|
||||
todo();
|
||||
todo(pat, kind);
|
||||
}
|
||||
|
||||
visitBlock(block: ast.Block): ast.VisitRes {
|
||||
@ -166,6 +164,14 @@ export class Resolver implements ast.Visitor {
|
||||
return "stop";
|
||||
}
|
||||
|
||||
visitPath(_path: ast.Path): ast.VisitRes {
|
||||
throw new Error("should not be reached");
|
||||
}
|
||||
|
||||
visitIdent(_ident: ast.Ident): ast.VisitRes {
|
||||
throw new Error("should not be reached");
|
||||
}
|
||||
|
||||
private resolveInnerPath(path: ast.Path): Resolve {
|
||||
const res = path.segments.slice(1, path.segments.length)
|
||||
.reduce((innerRes, seg) => {
|
||||
|
4
slige/compiler/ty/deno.jsonc
Normal file
4
slige/compiler/ty/deno.jsonc
Normal file
@ -0,0 +1,4 @@
|
||||
{
|
||||
"name": "@slige/ty",
|
||||
"exports": "./mod.ts",
|
||||
}
|
2
slige/compiler/ty/mod.ts
Normal file
2
slige/compiler/ty/mod.ts
Normal file
@ -0,0 +1,2 @@
|
||||
export * from "./ty.ts";
|
||||
export * from "./to_string.ts";
|
@ -1,5 +1,4 @@
|
||||
import { Ctx } from "../ctx.ts";
|
||||
import { exhausted } from "../util.ts";
|
||||
import { Ctx, exhausted } from "@slige/common";
|
||||
import { Ty } from "./ty.ts";
|
||||
|
||||
export function tyToString(ctx: Ctx, ty: Ty): string {
|
||||
|
@ -1,4 +1,4 @@
|
||||
import * as ast from "../ast/mod.ts";
|
||||
import * as ast from "@slige/ast";
|
||||
|
||||
export type Ty = {
|
||||
kind: TyKind;
|
||||
|
Loading…
x
Reference in New Issue
Block a user