From b7eded3763d4625b3a680410374a07d1f101de00 Mon Sep 17 00:00:00 2001 From: Ajani Bilby <11359344+AjaniBilby@users.noreply.github.com> Date: Fri, 15 Mar 2024 12:35:20 +1100 Subject: [PATCH] struct intrinsic attr init and loading --- source/bnf/syntax.bnf | 8 +-- source/bnf/syntax.d.ts | 2 +- source/bnf/syntax.js | 2 +- source/compiler/codegen/context.ts | 10 ++-- .../compiler/codegen/expression/container.ts | 24 +++++++- source/compiler/codegen/expression/helper.ts | 57 +++++++++++++++++-- source/compiler/codegen/expression/infix.ts | 45 +++++++++++++-- source/compiler/codegen/expression/postfix.ts | 8 +++ .../compiler/codegen/expression/precedence.ts | 2 +- source/compiler/codegen/expression/type.ts | 18 ++++-- source/parser.ts | 25 ++++---- 11 files changed, 158 insertions(+), 43 deletions(-) diff --git a/source/bnf/syntax.bnf b/source/bnf/syntax.bnf index 32937fe..70a15c2 100644 --- a/source/bnf/syntax.bnf +++ b/source/bnf/syntax.bnf @@ -102,11 +102,11 @@ expr ::= expr_arg %w* ( ...expr_infix %w* expr_arg %w* )* ; expr_infix ::= "&&" | "||" | "^" | "==" | "!=" | "<=" | ">=" | "<" | ">" | "%" | "*" | "/" | "+" | "-" | "as" | "instanceof" - | "->" ; + | "." | "->" ; expr_postfix ::= expr_call | expr_get | expr_param ; - expr_param ::= %"#[" %w* arg_list %w* %"]" ; - expr_call ::= %"(" %w* arg_list %w* %")" ; - expr_get ::= %"[" %w* arg_list %w* %"]" ; + expr_param ::= %"#[" %w* arg_list %w* %"]" ; + expr_call ::= %"(" %w* arg_list %w* %")" ; + expr_get ::= %"[" %w* arg_list %w* %"]" ; expr_arg ::= expr_prefix? %w* expr_val %w* expr_postfix* ; expr_val ::= constant | expr_brackets | block | container | if | name ; expr_brackets ::= %( "(" w* ) expr %( w* ")" ) ; diff --git a/source/bnf/syntax.d.ts b/source/bnf/syntax.d.ts index 6a587a4..da05e19 100644 --- a/source/bnf/syntax.d.ts +++ b/source/bnf/syntax.d.ts @@ -993,7 +993,7 @@ export type Term_Expr_infix = { count: number, ref: _Shared.ReferenceRange, value: [ - (_Literal & {value: "\x26\x26"} | _Literal & {value: "\x7c\x7c"} | _Literal & {value: "\x5e"} | _Literal & {value: "\x3d\x3d"} | _Literal & {value: "\x21\x3d"} | _Literal & {value: "\x3c\x3d"} | _Literal & {value: "\x3e\x3d"} | _Literal & {value: "\x3c"} | _Literal & {value: "\x3e"} | _Literal & {value: "\x25"} | _Literal & {value: "\x2a"} | _Literal & {value: "\x2f"} | _Literal & {value: "\x2b"} | _Literal & {value: "\x2d"} | _Literal & {value: "as"} | _Literal & {value: "instanceof"} | _Literal & {value: "\x2d\x3e"}) + (_Literal & {value: "\x26\x26"} | _Literal & {value: "\x7c\x7c"} | _Literal & {value: "\x5e"} | _Literal & {value: "\x3d\x3d"} | _Literal & {value: "\x21\x3d"} | _Literal & {value: "\x3c\x3d"} | _Literal & {value: "\x3e\x3d"} | _Literal & {value: "\x3c"} | _Literal & {value: "\x3e"} | _Literal & {value: "\x25"} | _Literal & {value: "\x2a"} | _Literal & {value: "\x2f"} | _Literal & {value: "\x2b"} | _Literal & {value: "\x2d"} | _Literal & {value: "as"} | _Literal & {value: "instanceof"} | _Literal & {value: "\x2e"} | _Literal & {value: "\x2d\x3e"}) ] } export declare function Parse_Expr_infix (i: string, refMapping?: boolean): _Shared.ParseError | { diff --git a/source/bnf/syntax.js b/source/bnf/syntax.js index ccfc7e9..5c59789 100644 --- a/source/bnf/syntax.js +++ b/source/bnf/syntax.js @@ -1,5 +1,5 @@ import * as _Shared from "./shared.js"; -let _rawWasm = _Shared.DecodeBase64("AGFzbQEAAAABIQZgAAF/YAF/AGABfwF/YAN/f38AYAN/f38Bf2ACf38BfwIQAQJqcwlwcmludF9pMzIAAQNDQgACAwQBBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUEAQEBCgYgBn8AQYcFC38BQQALfwFBAAt/AUEAC38BQQALfwFBAAsH4wVBBm1lbW9yeQIABWlucHV0AwAFcmVhY2gDBQtpbnB1dExlbmd0aAMCBV9pbml0AAEHcHJvZ3JhbQAHCHN0bXRfdG9wAAgBdwAJAm5sAAoFZGlnaXQACwhkaWdpdF9uegAMBmxldHRlcgANCXRlcm1pbmF0ZQAOB2NvbW1lbnQADw5jb21tZW50X3NpbmdsZQAQDWNvbW1lbnRfbXVsdGkAEQhjb25zdGFudAASBnN0cmluZwATC3N0cmluZ190ZXh0ABQHYm9vbGVhbgAVBHZvaWQAFgdpbnRlZ2VyABcJaW50ZWdlcl91ABgEemVybwAZBWZsb2F0ABoEbmFtZQAbBmFjY2VzcwAcCGFjY2Vzc29yAB0NYWNjZXNzX3N0YXRpYwAeDmFjY2Vzc19keW5hbWljAB8LYWNjZXNzX2NvbXAAIAdkZWNsYXJlACEGYXNzaWduACIJc3RydWN0dXJlACMLc3RydWN0X3R5cGUAJAtzdHJ1Y3Rfc3RtdAAlC3N0cnVjdF9hdHRyACYNc3RydWN0X3NwcmVhZAAnCWNvbnRhaW5lcgAoDmNvbnRhaW5lcl9pdGVtACkNY29udGFpbmVyX21hcAAqD2NvbnRhaW5lcl92YWx1ZQArCGZ1bmN0aW9uACwJZnVuY19oZWFkAC0JZnVuY19hcmdzAC4IZnVuY19hcmcALwVibG9jawAwCmJsb2NrX3N0bXQAMQlmdW5jX2NhbGwAMg5mdW5jX2NhbGxfYm9keQAzBnJldHVybgA0BXJhaXNlADUEZXhwcgA2C2V4cHJfcHJlZml4ADcKZXhwcl9pbmZpeAA4DGV4cHJfcG9zdGZpeAA5CmV4cHJfcGFyYW0AOglleHByX2NhbGwAOwhleHByX2dldAA8CGV4cHJfYXJnAD0IZXhwcl92YWwAPg1leHByX2JyYWNrZXRzAD8IYXJnX2xpc3QAQAJpZgBB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IAIjBGokBCMEEAUCQCACQQJHBEBBASEBIAAoAggkBCAAJAMMAQsjA0EANgIAIwNBBzYCBCMDIwQ2AgwjA0ECNgIQIABBFGpBhARBAhADIABBFmoQAiQDCyABRQ0AQQAhASMDIgAjBDYCCCMEQYYEQQIQBCECIAIjBGokBCMEEAUCQCACQQJHBEBBASEBIAAoAggkBCAAJAMMAQsjA0EANgIAIwNBBzYCBCMDIwQ2AgwjA0ECNgIQIABBFGpBhgRBAhADIABBFmoQAiQDCyABRQ0AQQAhASMDIgAjBDYCCCMEQYgEQQIQBCECIAIjBGokBCMEEAUCQCACQQJHBEBBASEBIAAoAggkBCAAJAMMAQsjA0EANgIAIwNBBzYCBCMDIwQ2AgwjA0ECNgIQIABBFGpBiARBAhADIABBFmoQAiQDCyABRQ0AQQAhASMDIgAjBDYCCCMEQYoEQQIQBCECIAIjBGokBCMEEAUCQCACQQJHBEBBASEBIAAoAggkBCAAJAMMAQsjA0EANgIAIwNBBzYCBCMDIwQ2AgwjA0ECNgIQIABBFGpBigRBAhADIABBFmoQAiQDCyABRQ0AQQAhASMDIgAjBDYCCCMEQYwEQQEQBCECIAIjBGokBCMEEAUCQCACQQFHBEBBASEBIAAoAggkBCAAJAMMAQsjA0EANgIAIwNBBzYCBCMDIwQ2AgwjA0EBNgIQIABBFGpBjARBARADIABBFWoQAiQDCyABRQ0AQQAhASMDIgAjBDYCCCMEQY0EQQEQBCECIAIjBGokBCMEEAUCQCACQQFHBEBBASEBIAAoAggkBCAAJAMMAQsjA0EANgIAIwNBBzYCBCMDIwQ2AgwjA0EBNgIQIABBFGpBjQRBARADIABBFWoQAiQDCyABRQ0AQQAhASMDIgAjBDYCCCMEQY4EQQEQBCECIAIjBGokBCMEEAUCQCACQQFHBEBBASEBIAAoAggkBCAAJAMMAQsjA0EANgIAIwNBBzYCBCMDIwQ2AgwjA0EBNgIQIABBFGpBjgRBARADIABBFWoQAiQDCyABRQ0AQQAhASMDIgAjBDYCCCMEQY8EQQEQBCECIAIjBGokBCMEEAUCQCACQQFHBEBBASEBIAAoAggkBCAAJAMMAQsjA0EANgIAIwNBBzYCBCMDIwQ2AgwjA0EBNgIQIABBFGpBjwRBARADIABB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"); +let _rawWasm = _Shared.DecodeBase64("AGFzbQEAAAABIQZgAAF/YAF/AGABfwF/YAN/f38AYAN/f38Bf2ACf38BfwIQAQJqcwlwcmludF9pMzIAAQNDQgACAwQBBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUEAQEBCgYgBn8AQYcFC38BQQALfwFBAAt/AUEAC38BQQALfwFBAAsH4wVBBm1lbW9yeQIABWlucHV0AwAFcmVhY2gDBQtpbnB1dExlbmd0aAMCBV9pbml0AAEHcHJvZ3JhbQAHCHN0bXRfdG9wAAgBdwAJAm5sAAoFZGlnaXQACwhkaWdpdF9uegAMBmxldHRlcgANCXRlcm1pbmF0ZQAOB2NvbW1lbnQADw5jb21tZW50X3NpbmdsZQAQDWNvbW1lbnRfbXVsdGkAEQhjb25zdGFudAASBnN0cmluZwATC3N0cmluZ190ZXh0ABQHYm9vbGVhbgAVBHZvaWQAFgdpbnRlZ2VyABcJaW50ZWdlcl91ABgEemVybwAZBWZsb2F0ABoEbmFtZQAbBmFjY2VzcwAcCGFjY2Vzc29yAB0NYWNjZXNzX3N0YXRpYwAeDmFjY2Vzc19keW5hbWljAB8LYWNjZXNzX2NvbXAAIAdkZWNsYXJlACEGYXNzaWduACIJc3RydWN0dXJlACMLc3RydWN0X3R5cGUAJAtzdHJ1Y3Rfc3RtdAAlC3N0cnVjdF9hdHRyACYNc3RydWN0X3NwcmVhZAAnCWNvbnRhaW5lcgAoDmNvbnRhaW5lcl9pdGVtACkNY29udGFpbmVyX21hcAAqD2NvbnRhaW5lcl92YWx1ZQArCGZ1bmN0aW9uACwJZnVuY19oZWFkAC0JZnVuY19hcmdzAC4IZnVuY19hcmcALwVibG9jawAwCmJsb2NrX3N0bXQAMQlmdW5jX2NhbGwAMg5mdW5jX2NhbGxfYm9keQAzBnJldHVybgA0BXJhaXNlADUEZXhwcgA2C2V4cHJfcHJlZml4ADcKZXhwcl9pbmZpeAA4DGV4cHJfcG9zdGZpeAA5CmV4cHJfcGFyYW0AOglleHByX2NhbGwAOwhleHByX2dldAA8CGV4cHJfYXJnAD0IZXhwcl92YWwAPg1leHByX2JyYWNrZXRzAD8IYXJnX2xpc3QAQAJpZgBB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IAIjBGokBCMEEAUCQCACQQJHBEBBASEBIAAoAggkBCAAJAMMAQsjA0EANgIAIwNBBzYCBCMDIwQ2AgwjA0ECNgIQIABBFGpBhARBAhADIABBFmoQAiQDCyABRQ0AQQAhASMDIgAjBDYCCCMEQYYEQQIQBCECIAIjBGokBCMEEAUCQCACQQJHBEBBASEBIAAoAggkBCAAJAMMAQsjA0EANgIAIwNBBzYCBCMDIwQ2AgwjA0ECNgIQIABBFGpBhgRBAhADIABBFmoQAiQDCyABRQ0AQQAhASMDIgAjBDYCCCMEQYgEQQIQBCECIAIjBGokBCMEEAUCQCACQQJHBEBBASEBIAAoAggkBCAAJAMMAQsjA0EANgIAIwNBBzYCBCMDIwQ2AgwjA0ECNgIQIABBFGpBiARBAhADIABBFmoQAiQDCyABRQ0AQQAhASMDIgAjBDYCCCMEQYoEQQIQBCECIAIjBGokBCMEEAUCQCACQQJHBEBBASEBIAAoAggkBCAAJAMMAQsjA0EANgIAIwNBBzYCBCMDIwQ2AgwjA0ECNgIQIABBFGpBigRBAhADIABBFmoQAiQDCyABRQ0AQQAhASMDIgAjBDYCCCMEQYwEQQEQBCECIAIjBGokBCMEEAUCQCACQQFHBEBBASEBIAAoAggkBCAAJAMMAQsjA0EANgIAIwNBBzYCBCMDIwQ2AgwjA0EBNgIQIABBFGpBjARBARADIABBFWoQAiQDCyABRQ0AQQAhASMDIgAjBDYCCCMEQY0EQQEQBCECIAIjBGokBCMEEAUCQCACQQFHBEBBASEBIAAoAggkBCAAJAMMAQsjA0EANgIAIwNBBzYCBCMDIwQ2AgwjA0EBNgIQIABBFGpBjQRBARADIABBFWoQAiQDCyABRQ0AQQAhASMDIgAjBDYCCCMEQY4EQQEQBCECIAIjBGokBCMEEAUCQCACQQFHBEBBASEBIAAoAggkBCAAJAMMAQsjA0EANgIAIwNBBzYCBCMDIwQ2AgwjA0EBNgIQIABBFGpBjgRBARADIABBFWoQAiQDCyABRQ0AQQAhASMDIgAjBDYCCCMEQY8EQQEQBCECIAIjBGokBCMEEAUCQCACQQFHBEBBASEBIAAoAggkBCAAJAMMAQsjA0EANgIAIwNBBzYCBCMDIwQ2AgwjA0EBNgIQIABBFGpBjwRBARADIABB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"); let _ctx = null; if (typeof window === 'undefined') { _ctx = new WebAssembly.Instance( diff --git a/source/compiler/codegen/context.ts b/source/compiler/codegen/context.ts index 9326b35..1f5eaec 100644 --- a/source/compiler/codegen/context.ts +++ b/source/compiler/codegen/context.ts @@ -9,14 +9,13 @@ import Structure from "~/compiler/structure.ts"; import { IntrinsicType, IntrinsicValue, i16, i8, u16, u8 } from "~/compiler/intrinsic.ts"; import { Instruction, AnyInstruction } from "~/wasm/index.ts"; import { AssertUnreachable, Panic } from "~/helper.ts"; +import { IntrinsicVariable } from "~/compiler/codegen/variable.ts"; +import { StructVariable } from "~/compiler/codegen/variable.ts"; import { OperandType } from "~/compiler/codegen/expression/type.ts"; import { CompileExpr } from "~/compiler/codegen/expression/index.ts"; import { none, never } from "~/compiler/intrinsic.ts"; -import { Block } from "~/wasm/instruction/control-flow.ts"; import { LinearType } from "~/compiler/codegen/expression/type.ts"; -import { IntrinsicVariable } from "~/compiler/codegen/variable.ts"; -import { StructVariable } from "~/compiler/codegen/variable.ts"; -import { Variable } from "~/compiler/codegen/variable.ts"; +import { Block } from "~/wasm/instruction/control-flow.ts"; export class Context { file: File; @@ -144,8 +143,6 @@ function CompileDeclare(ctx: Context, syntax: Syntax.Term_Declare) { ) const variable = ctx.scope.registerVariable(name, resolveType, syntax.ref); - variable.markDefined(); - if (variable instanceof IntrinsicVariable) { ctx.block.push(Instruction.local.set(variable.register.ref)); } else if (variable instanceof StructVariable) { @@ -180,6 +177,7 @@ function CompileAssign(ctx: Context, syntax: Syntax.Term_Assign) { if (variable instanceof IntrinsicVariable) { ctx.block.push(Instruction.local.set(variable.register.ref)); + variable.markDefined(); } else if (variable instanceof StructVariable) { // TODO: drop previous value // TODO: move operation diff --git a/source/compiler/codegen/expression/container.ts b/source/compiler/codegen/expression/container.ts index 062c92a..d62ba21 100644 --- a/source/compiler/codegen/expression/container.ts +++ b/source/compiler/codegen/expression/container.ts @@ -2,14 +2,14 @@ import * as colors from "https://deno.land/std@0.201.0/fmt/colors.ts"; import type * as Syntax from "~/bnf/syntax.d.ts"; import Structure from "~/compiler/structure.ts"; -import { IsContainerType, LinearType, SolidType, OperandType } from "~/compiler/codegen/expression/type.ts"; +import { LinearType, SolidType, OperandType } from "~/compiler/codegen/expression/type.ts"; import { Panic, LatentOffset } from "~/helper.ts"; import { IntrinsicValue } from "~/compiler/intrinsic.ts"; import { CompileExpr } from "~/compiler/codegen/expression/index.ts"; import { Instruction } from "~/wasm/index.ts"; +import { SourceView } from "~/parser.ts"; import { Context } from "~/compiler/codegen/context.ts"; import { Store } from "~/compiler/codegen/expression/helper.ts"; -import { SourceView } from "~/parser.ts"; export function StructBuilder(ctx: Context, syntax: Syntax.Term_Container, expect?: SolidType): OperandType { if (!(expect instanceof Structure)) Panic( @@ -31,6 +31,7 @@ export function StructBuilder(ctx: Context, syntax: Syntax.Term_Container, expec return; } + const seen: string[] = []; for (const item of iterator()) { const elm = item.value[0]; if (elm.type === "container_value") { @@ -49,16 +50,33 @@ export function StructBuilder(ctx: Context, syntax: Syntax.Term_Container, expec path: ctx.file.path, name: ctx.file.name, ref: elm.ref }); + if (seen.includes(name)) Panic( + `${colors.red("Error")}: Duplicate ${name} attribute initialization\n`, { + path: ctx.file.path, name: ctx.file.name, ref: elm.ref + }); + seen.push(name); + ctx.block.push(Instruction.const.i32(0)); const expr = CompileExpr(ctx, elm.value[1], attr.type); if (expr instanceof IntrinsicValue) { - Store(ctx, expr.type, new LatentOffset(alloc.getOffset(), attr.offset)); + Store( + ctx, expr.type, + ctx.file.owner.project.stackBase, + new LatentOffset(alloc.getOffset(), attr.offset) + ); } else Panic( `${colors.red("Error")}: Only intrinsics are currently supported\n`, { path: ctx.file.path, name: ctx.file.name, ref: elm.ref }); } + for (const attr of expect.attributes) { + if (seen.includes(attr.name)) continue; + + const blank = linear.get(attr.name); + blank?.markConsumed(syntax.ref); + } + return linear; } diff --git a/source/compiler/codegen/expression/helper.ts b/source/compiler/codegen/expression/helper.ts index b0eaf69..d053bcf 100644 --- a/source/compiler/codegen/expression/helper.ts +++ b/source/compiler/codegen/expression/helper.ts @@ -1,13 +1,30 @@ -import { Instruction, Type } from "~/wasm/index.ts"; -import { LatentOffset } from "~/helper.ts"; -import { SolidType } from "~/compiler/codegen/expression/type.ts"; +import { BasePointerType, BasePointer } from "~/compiler/codegen/expression/type.ts"; +import { LinearType, SolidType } from "~/compiler/codegen/expression/type.ts"; +import { AssertUnreachable } from "~/helper.ts"; +import { IntrinsicValue, i32 } from "~/compiler/intrinsic.ts"; +import { ReferenceRange } from "~/bnf/shared.js"; import { IntrinsicType } from "~/compiler/intrinsic.ts"; +import { LatentOffset } from "~/helper.ts"; +import { Instruction } from "~/wasm/index.ts"; +import { SourceView } from "~/parser.ts"; import { Context } from "~/compiler/codegen/context.ts"; import { Panic } from "~/helper.ts"; -export function Store(ctx: Context, type: SolidType, offset: number | LatentOffset) { +export function Store(ctx: Context, type: SolidType, base: BasePointer, offset: number | LatentOffset) { if (!(type instanceof IntrinsicType)) Panic("Unimplemented"); + const temp = ctx.scope.register.allocate(i32.bitcode, false); + ctx.block.push(Instruction.local.set(temp.ref)); + + switch (base.type) { + case BasePointerType.global: ctx.block.push(Instruction.global.get(base.id)); break; + case BasePointerType.local: ctx.block.push(Instruction.local.get(base.id)); break; + default: AssertUnreachable(base.type); + } + + ctx.block.push(Instruction.local.get(temp.ref)); + temp.free(); + switch (type.name) { case "u32": case "i32": ctx.block.push(Instruction.i32.store(offset, 0)); break; case "u64": case "i64": ctx.block.push(Instruction.i64.store(offset, 0)); break; @@ -21,9 +38,21 @@ export function Store(ctx: Context, type: SolidType, offset: number | LatentOffs } -export function Load(ctx: Context, type: SolidType, offset: number | LatentOffset) { +export function Load(ctx: Context, type: SolidType, base: BasePointer, offset: number | LatentOffset) { if (!(type instanceof IntrinsicType)) Panic("Unimplemented"); + const temp = ctx.scope.register.allocate(i32.bitcode, false); + ctx.block.push(Instruction.local.set(temp.ref)); + + switch (base.type) { + case BasePointerType.global: ctx.block.push(Instruction.global.get(base.id)); break; + case BasePointerType.local: ctx.block.push(Instruction.local.get(base.id)); break; + default: AssertUnreachable(base.type); + } + + ctx.block.push(Instruction.local.get(temp.ref)); + temp.free(); + switch (type.name) { case "u32": case "i32": ctx.block.push(Instruction.i32.load(offset, 0)); break; case "u64": case "i64": ctx.block.push(Instruction.i64.load(offset, 0)); break; @@ -36,4 +65,22 @@ export function Load(ctx: Context, type: SolidType, offset: number | LatentOffse default: Panic(`Unhandled store type ${type.name}`); } +} + + +export function ResolveLinearType(ctx: Context, type: LinearType, ref: ReferenceRange) { + const errs = type.getCompositionErrors(); + if (errs) { + console.error(`Unable to compose value due to some arguments being uninitialized since:\n` + + errs.map(x => SourceView(ctx.file.path, ctx.file.name, x, true)).join("") + + SourceView(ctx.file.path, ctx.file.name, ref, false) + ); + + ctx.file.markFailure(); + } + + const base = type.type; + if (base instanceof IntrinsicValue) { + Load(ctx, base.type, ctx.file.owner.project.stackBase, type.offset); + } } \ No newline at end of file diff --git a/source/compiler/codegen/expression/infix.ts b/source/compiler/codegen/expression/infix.ts index c5dce7d..6f33b7f 100644 --- a/source/compiler/codegen/expression/infix.ts +++ b/source/compiler/codegen/expression/infix.ts @@ -1,7 +1,8 @@ import * as colors from "https://deno.land/std@0.201.0/fmt/colors.ts"; +import Structure from "~/compiler/structure.ts"; import { IntrinsicValue, bool, u8, i8, u16, i16, u32, i32, u64, i64, f32, f64 } from "~/compiler/intrinsic.ts"; -import { OperandType, SolidType, IsSolidType } from "~/compiler/codegen/expression/type.ts"; +import { OperandType, SolidType, IsSolidType, LinearType } from "~/compiler/codegen/expression/type.ts"; import { PrecedenceTree } from "~/compiler/codegen/expression/precedence.ts"; import { ReferenceRange } from "~/parser.ts"; import { Instruction } from "~/wasm/index.ts"; @@ -11,17 +12,18 @@ import { Panic } from "~/helper.ts"; export function CompileInfix(ctx: Context, lhs: PrecedenceTree, op: string, rhs: PrecedenceTree, ref: ReferenceRange, expect?: SolidType): OperandType { - if (op === "as") return CompileAs(ctx, lhs, rhs, ref); + if (op === "as") return CompileAs(ctx, lhs, rhs); + if (op === ".") return CompileStaticAccess(ctx, lhs, rhs, expect); const a = CompilePrecedence(ctx, lhs, expect); if (!(a instanceof IntrinsicValue)) Panic( - `${colors.red("Error")}: Cannot apply infix operation to non-variable\n`, { + `${colors.red("Error")}: Cannot apply arithmetic infix operation to non-variable\n`, { path: ctx.file.path, name: ctx.file.name, ref: lhs.ref }); const b = CompilePrecedence(ctx, rhs, a.type); if (!(b instanceof IntrinsicValue)) Panic( - `${colors.red("Error")}: Cannot apply infix operation to non-variable\n`, { + `${colors.red("Error")}: Cannot apply arithmetic infix operation to non-variable\n`, { path: ctx.file.path, name: ctx.file.name, ref: rhs.ref }); @@ -57,7 +59,7 @@ function CompilePrecedence(ctx: Context, elm: PrecedenceTree, expect?: SolidType -function CompileAs(ctx: Context, lhs: PrecedenceTree, rhs: PrecedenceTree, ref: ReferenceRange): OperandType { +function CompileAs(ctx: Context, lhs: PrecedenceTree, rhs: PrecedenceTree): OperandType { const goal = CompilePrecedence(ctx, rhs); if (!IsSolidType(goal)) Panic( `${colors.red("Error")}: Cannot type coerce to non-solid type\n`, { @@ -74,6 +76,39 @@ function CompileAs(ctx: Context, lhs: PrecedenceTree, rhs: PrecedenceTree, ref: } +function CompileStaticAccess(ctx: Context, lhs: PrecedenceTree, rhs: PrecedenceTree, expect?: SolidType): OperandType { + const a = CompilePrecedence(ctx, lhs, expect); + if (!(a instanceof LinearType)) Panic( + `${colors.red("Error")}: Cannot static access into a non-struct value\n`, { + path: ctx.file.path, name: ctx.file.name, ref: lhs.ref + }); + if (!(a.type instanceof Structure)) Panic( + `${colors.red("Error")}: Cannot static access off an intrinsic value\n`, { + path: ctx.file.path, name: ctx.file.name, ref: lhs.ref + }); + + if (rhs.type !== "expr_arg") Panic( + `${colors.red("Error")}: Expected an expression argument for a static access\n`, { + path: ctx.file.path, name: ctx.file.name, ref: rhs.ref + }); + + const inner = rhs.value[1].value[0]; + if (inner.type !== "name") Panic( + `${colors.red("Error")}: A name must be given for static access, not this\n`, { + path: ctx.file.path, name: ctx.file.name, ref: rhs.ref + }); + + const name = inner.value[0].value; + const attr = a.get(name); + if (!attr) Panic( + `${colors.red("Error")}: Unknown attribute ${name} on ${a.getTypeName()}\n`, { + path: ctx.file.path, name: ctx.file.name, ref: rhs.ref + }); + + return attr; +} + + function CompileAdd(ctx: Context, lhs: IntrinsicValue, rhs: IntrinsicValue, ref: ReferenceRange) { if (lhs !== rhs) Panic(`${colors.red("Error")}: Cannot add unmatched types ${lhs.type.name} != ${rhs.type.name}\n`, { diff --git a/source/compiler/codegen/expression/postfix.ts b/source/compiler/codegen/expression/postfix.ts index d2cf618..b2ad279 100644 --- a/source/compiler/codegen/expression/postfix.ts +++ b/source/compiler/codegen/expression/postfix.ts @@ -3,13 +3,16 @@ import * as colors from "https://deno.land/std@0.201.0/fmt/colors.ts"; import type * as Syntax from "~/bnf/syntax.d.ts"; import Function from "~/compiler/function.ts"; import { AssertUnreachable, Panic } from "~/helper.ts"; +import { ResolveLinearType } from "~/compiler/codegen/expression/helper.ts"; import { OperandType } from "~/compiler/codegen/expression/type.ts"; import { CompileExpr } from "~/compiler/codegen/expression/index.ts"; import { IsNamespace } from "~/compiler/file.ts"; import { Instruction } from "~/wasm/index.ts"; +import { LinearType } from "~/compiler/codegen/expression/type.ts"; import { Context } from "~/compiler/codegen/context.ts"; + export function CompilePostfixes(ctx: Context, syntax: Syntax.Term_Expr_postfix[], type: OperandType, expect?: OperandType): OperandType { let res = type; for (const postfix of syntax) { @@ -69,6 +72,11 @@ function CompileCall(ctx: Context, syntax: Syntax.Term_Expr_call, operand: Opera `${colors.red("Error")}: Call argument type miss-match, expected ${signature.type.name} got ${res.getTypeName()}\n`, { path: ctx.file.path, name: ctx.file.name, ref: args[i].ref } ); + + + // Special post-processing for linear types + if (!(res instanceof LinearType)) continue; + ResolveLinearType(ctx, res, args[i].ref); } ctx.block.push(Instruction.call(operand.ref)); diff --git a/source/compiler/codegen/expression/precedence.ts b/source/compiler/codegen/expression/precedence.ts index 3256199..f2bbb44 100644 --- a/source/compiler/codegen/expression/precedence.ts +++ b/source/compiler/codegen/expression/precedence.ts @@ -3,7 +3,7 @@ import { ReferenceRange } from "~/parser.ts"; const precedence = { - "->": 1, + ".": 1, "->": 1, "*" : 3, "/" : 3, "%" : 3, "+" : 4, "-" : 4, "<<": 5, ">>": 5, diff --git a/source/compiler/codegen/expression/type.ts b/source/compiler/codegen/expression/type.ts index ea9dd6f..3896424 100644 --- a/source/compiler/codegen/expression/type.ts +++ b/source/compiler/codegen/expression/type.ts @@ -60,15 +60,15 @@ export class LinearType { if (b instanceof LinearType) { assert(typeof c === "number", "should be number"); - this.consumedAt = undefined; this.composable = true; this.retain = false; + this.type = a; this.parent = b; - this.type = b.type; this.base = b.base; this.alloc = b.alloc; this.offset = b.offset + c; + this.consumedAt = b.consumedAt; } else { assert(c instanceof BasePointer, "should be base pointer"); @@ -119,12 +119,18 @@ export class LinearType { if (this.composable) return null; if (this.consumedAt) { - reasons.push(this.consumedAt); - for (const [_, child] of this.attributes) { - child.getCompositionErrors(reasons); - } + const reasonGiven = reasons.findIndex(x => x.start.index === this.consumedAt?.start.index) !== -1; + + // You've been consumed, you have no children + if (reasonGiven) return; + reasons.push(this.consumedAt) + return reasons; }; + for (const [_, child] of this.attributes) { + child.getCompositionErrors(reasons); + } + if (reasons.length === 0) return null; return reasons; diff --git a/source/parser.ts b/source/parser.ts index 7934114..ade1b2b 100644 --- a/source/parser.ts +++ b/source/parser.ts @@ -12,20 +12,23 @@ export function Parse(data: string, path: string, name: string): Syntax.Term_Pro if (res instanceof ParseError) Panic(`${colors.red("FATAL ERROR")}: Syntax Parser Completely crashed`); - if (res.isPartial) Panic( - colors.red("Syntax Error") + "\n", - { - path, name, - ref: res.reach - ? new ReferenceRange(res.root.ref.end, res.reach) - : ReferenceRange.blank() - } - ); + if (res.isPartial) { + console.error(res); + Panic( + colors.red("Syntax Error") + "\n", + { + path, name, + ref: res.reach + ? new ReferenceRange(res.root.ref.end, res.reach) + : ReferenceRange.blank() + } + ) + }; return res.root as Syntax.Term_Program; } -export function SourceView(path: string, name: string, range: ReferenceRange) { +export function SourceView(path: string, name: string, range: ReferenceRange, compact?: boolean) { const source = ReadByteRange(path, range.start.index-200, range.end.index+200); if (source === null) return `${name}: ${range.toString()}\n`; @@ -53,7 +56,7 @@ export function SourceView(path: string, name: string, range: ReferenceRange) { + eLine + " | " + finish; } - body += `\n ${name}: ${range.toString()}\n`; + body += compact ? "\n" : `\n ${name}: ${range.toString()}\n`; return body; }