diff --git a/docs/docs/enviroment.md b/docs/docs/enviroment.md index fc4860d..54e6b31 100644 --- a/docs/docs/enviroment.md +++ b/docs/docs/enviroment.md @@ -164,4 +164,22 @@ A fájl írása felülírja a már fájlban lévő adatokat! |mappát töröl|Kitöröl egy mappát.|`mappát töröl(path: string)`|`mappát töröl(szaft"test1/"szaft)`| |fájlt töröl|Kitöröl egy fájlt.|`fájlt töröl(path: string)`|`fájlt töröl(szaft"compiled.asx"szaft)`| |olvass|Beolvas egy fájlt.|`olvass(path: string): string`|`olvass(szaft"test.asl"szaft)`| -|írj|Beleírja egy fájlba a kapott adatokat.|`írj(path: string, data: string)`|`írj(szaft"test.txt"szaft, szaft"Hello from ASL!"szaft)`| \ No newline at end of file +|írj|Beleírja egy fájlba a kapott adatokat.|`írj(path: string, data: string)`|`írj(szaft"test.txt"szaft, szaft"Hello from ASL!"szaft)`| + +--- + +## Krumpli (Coroutine) +Multi-tasking funkciók +:::tip + +A példák elé kell írni a kulcsszót: `krumpli` + +Példa: `krumpli.várj` + +::: +|Név|Leírás|Használat|Példa| +|---|---|---|---| +|várj|Visszaadja a futást az előző thread-nak.|`várj()`|`várj()`| +|létrehoz|Létrehoz egy új thread-et.|`létrehoz(f: function): coroutine`|`létrehoz(lőcsve() { ugass(7) })`| +|folytat|Folytatja a thread-et.|`folytat(c: coroutine)`|`folytat(c)`| +|státusz|Visszaadja a thread státuszát.|`folytat(c: coroutine)`|`folytat(c)`| \ No newline at end of file diff --git a/extension/index.js b/extension/index.js index 9f69f5b..e9adb88 100644 --- a/extension/index.js +++ b/extension/index.js @@ -36,6 +36,7 @@ vscode.languages.registerCompletionItemProvider('astrolang', { "mennyi az idő", "joink", "intéző", + "krumpli", "abs", "kerek", @@ -75,8 +76,11 @@ vscode.languages.registerCompletionItemProvider('astrolang', { "mappít", "mappát töröl", "fájlt töröl", - "olvass", - "írj" + + "várj", + "létrehoz", + "folytat", + "státusz" ] let out = [] for (let i = 0; i < words.length; i++) { diff --git a/src/compiler.rs b/src/compiler.rs index 82508a3..d30d014 100644 --- a/src/compiler.rs +++ b/src/compiler.rs @@ -1,7 +1,7 @@ use std::{collections::HashMap, fs, process, vec}; use crate::{errors::{create_error, print_error, ErrorSubType, ErrorType}, lexer::lex, parser::{parse, ASTPart}, Context}; -const ASXVERSION: [u8; 3] = [0,2,0]; +const ASXVERSION: [u8; 3] = [1,0,0]; #[derive(Debug, Clone)] pub struct Operation { diff --git a/src/decompiler.rs b/src/decompiler.rs index f572519..924feaf 100644 --- a/src/decompiler.rs +++ b/src/decompiler.rs @@ -1,6 +1,6 @@ use std::collections::HashMap; -const ASXVERSION: [u8; 3] = [0,2,0]; +const ASXVERSION: [u8; 3] = [1,0,0]; #[derive(Debug, Clone)] pub struct DecompiledFunction { diff --git a/src/enviroment.rs b/src/enviroment.rs index b0db0d6..40cfb12 100644 --- a/src/enviroment.rs +++ b/src/enviroment.rs @@ -1022,7 +1022,6 @@ fn krumpli_folytat(machine: &mut Machine, op: &DecompiledOperation, args: Vec { vm.memory = machine.memory.clone(); diff --git a/src/main.rs b/src/main.rs index 4d14a0b..3de6c12 100644 --- a/src/main.rs +++ b/src/main.rs @@ -10,7 +10,7 @@ mod virtualmachine; mod errors; mod decompiler; -const CLIVER: [u8; 3] = [0, 3, 0]; +const CLIVER: [u8; 3] = [1,0,0]; #[derive(Debug, Clone)] struct Context {