diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..e66f844 --- /dev/null +++ b/LICENSE @@ -0,0 +1,7 @@ +Copyright 2025 Afonya + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..c215016 --- /dev/null +++ b/README.md @@ -0,0 +1,26 @@ +# Astro Lang +Egy magyar + GenZ programozási nyelv + +--- + +## Miben jobb: +- többszavas változók +- magyar kulcsszavak +- teljes értékű dokumentáció +- Rustban írt + +--- + +## Példa: +```asl +gethelj a = 10 +ugass(a) +``` + +--- + +Weboldal és dokumentáció: [itt](https://astrolang.afonyanet.hu) + +Kiadások: [itt](https://git.afonyanet.hu/afonya/AstroLang/releases) + +Licensz: MIT \ No newline at end of file diff --git a/docs/versioned_docs/version-1.0.0/asx.md b/docs/versioned_docs/version-1.0.0/asx.md new file mode 100644 index 0000000..7062399 --- /dev/null +++ b/docs/versioned_docs/version-1.0.0/asx.md @@ -0,0 +1,110 @@ +--- +sidebar_position: 5 +description: Az ASX fájl leírása +--- + +# ASX (Astro Lang Executable) fájl + +--- + +:::info + +ASX Verzió: `0.2.0` + +::: + +:::info + +Ezt megtudod nézni a `ASL viewx <fájl>` parancs használatával. + +::: + +## Fájl felépítése: +|Név|Leírás|Méret| +|---|---|---| +|Doctype: ASX|Elmondja a fájlról, hogy tényleg ASX.|3 bytes| +|Verzió|Elmondja a fájl ASX verzióját. (byte.byte.byte)|3 bytes| +|Funkciók száma|Elmondja, hogy mennyi funkció van a fájlban.|4 bytes| +|Funkciók|Lásd: [Funkciók](#funkciók)|| + +## Funkciók: +|Név|Leírás|Méret| +|---|---|---| +|Változók száma|Elmondja, hogy a funkcióban mennyi változó van.|4 bytes| +|Változók|Lásd: [Változók](#változók)|| +|Szövegek száma|Elmondja, hogy a funkcióban mennyi szöveg van.|4 bytes| +|Szövegek|Lásd: [Szövegek](#szövegek)|| +|Funkciók száma|Elmondja, hogy a funkcióban mennyi funkció meghívás van.|4 bytes| +|Funkciók|Lásd: [Funkció meghívások](#funkció-meghívások)|| +|Catch pos|Megmutatja a catch funkció helyzetét, csak try-ban. Normál funkciók esetén 0|4 bytes| +|Instrukciók száma|Elmondja, hogy a funkcióban mennyi instrukció van.|4 bytes| +|Instukciók|Lásd: [Instrukciók](#instrukciók)|| + +## Változók: +|Név|Méret| +|---|---| +|Változó nevének hossza|4 bytes| +|Változó neve|| +|Változó ID-je|3 bytes| +|Változó kezdő ponja|4 bytes| +|Változó végpontja|4 bytes| + +## Szövegek: +|Név|Méret| +|---|---| +|Szöveg ID-je|3 bytes| +|A szöveg hossza|4 bytes| +|A szöveg|| + +## Funkció meghívások: +|Név|Méret| +|---|---| +|A meghívás ID-je|3 bytes| +|A meghívott funkció pozíciója|4 bytes| + +## Instrukciók: +:::info + +Minden instrukció végére hozzáadunk még 3 bit-et, így összesen 10 byte-ba belefér minden instrukció. + +::: +|OP Code - 5 bits|Rövid név|Leírás|Arg1 - 4 bits|Arg2 - 64 bits|Arg3 - 4 bits| +|---|---|---|---|---|---| +|0|HLT|Befejezi a program futtatását|||| +|1|LDS|Betölt egy szöveget a regiszterbe|R(A)|Szöveg ID|| +|2|LDM|Betölti a változót a memóriából|R(A)|Változó ID|| +|3|LDI|Betölt egy számot a regiszterbe|R(A)|Szám|| +|4|LDB|Betölt egy logikai értéket a regiszterbe|R(A)|Logikai érték|| +|5|LDF|Betölt egy funkciót a regiszterbe|R(A)|Funkció ID|| +|6|LDN|Betölt egy null-t/táblát a regiszterbe|R(A)|Ez egy tábla?|| +|7|ASS|Hozzáad egy változó ID-t a regiszerhez|R(A)|Változó ID|| +|8|UNB|Leválaszja a regiszterről a változót|R(A)||| +|9|MOV|Átmásolja R(A) pointerjét R(B)-be|R(A)|R(B)|| +|10|ADD|`R(C) = R(A) + R(B)`|R(A)|R(B)|R(C)| +|11|SUB|`R(C) = R(A) - R(B)`|R(A)|R(B)|R(C)| +|12|MUL|`R(C) = R(A) * R(B)`|R(A)|R(B)|R(C)| +|13|DIV|`R(C) = R(A) / R(B)`|R(A)|R(B)|R(C)| +|14|POW|`R(C) = R(A) ^ R(B)`|R(A)|R(B)|R(C)| +|15|MOD|`R(C) = R(A) % R(B)`|R(A)|R(B)|R(C)| +|16|AND|`R(C) = R(A) && R(B)`|R(A)|R(B)|R(C)| +|17|OR|`R(C) = R(A) \|\| R(B)`|R(A)|R(B)|R(C)| +|18|EQ|`R(C) = R(A) == R(B)`|R(A)|R(B)|R(C)| +|19|NEQ|`R(C) = R(A) != R(B)`|R(A)|R(B)|R(C)| +|20|GRE|`R(C) = R(A) > R(B)`|R(A)|R(B)|R(C)| +|21|GRQ|`R(C) = R(A) >= R(B)`|R(A)|R(B)|R(C)| +|22|LES|`R(C) = R(A) < R(B)`|R(A)|R(B)|R(C)| +|23|LEQ|`R(C) = R(A) <= R(B)`|R(A)|R(B)|R(C)| +|24|NOT|`R(B) = !R(A)`|R(A)|R(B)|| +|25|JMP|Oda ugrik a kódban||Hely|| +|26|CJP|Oda ugrik a kódban, ha a regiszter igaz|R(A)|Hely|| +|27|CAL|Meghív egy funkciót, majd a kimenetet elmenti R(B)-be|R(A)|R(B)|| +|28|PSH|Egy értéket belerak a következő funkció bemeneteihez|R(A)||| +|29|RET|Visszad egy értéket|R(A)||| +|30|GET|Lekér egy értéket a táblából `R(C) = R(A)[R(B)]`|R(A)|R(B)|R(C)| +|31|SET|Beállít egy értéket a táblának `R(A)[R(B)] = R(C)`|R(A)|R(B)|R(C)| + +:::tip + +Ha az ENV-ből szeretnénk lekérni valamit akkor a `GET`-et kell használni, úgy, hogy `R(A) = 0`! + +::: \ No newline at end of file diff --git a/docs/versioned_docs/version-1.0.0/enviroment.md b/docs/versioned_docs/version-1.0.0/enviroment.md new file mode 100644 index 0000000..54e6b31 --- /dev/null +++ b/docs/versioned_docs/version-1.0.0/enviroment.md @@ -0,0 +1,185 @@ +--- +sidebar_position: 4 +description: Az Astro Lang környezete +--- + +# Környezet + +--- + +## Alapfunkciók +|Név|Leírás|Használat|Példa| +|---|---|---|---| +|ugass|Kíírja a megadott értékeket.|`ugass(...)`|`ugass(6,7,szaft"test"szaft)`| +|bimba|Várakozik adott ideig (miliszekundum-ban).|`ugass(ms: number)`|`bimba(1000)`| +|csömör|Hibával befejezi a programot.|`csömör(error: string)`|`csömör(szaft"Sikertelen: Sikeresen befejezve!"szaft)`| +|tarh|Kíírja, hogy a megadott érték milyen típusú.|`tarh(object: any): string`|`tarh(82)`| +|bimbabemb|Átalakítja a megadott érétk típusát, ha lehetséges.|`bimbabemb(object: any, target: string): any`|`bimbabemb(7,szaft"string"szaft)`| +|mennyi az idő|Visszaadja a pillanatnyi UNIX időt milisec-ben.|`mennyi az idő(): number`|`mennyi az idő()`| +|joink|Bekér egy szöveget a terminálból.|`joink(): string`|`joink()`| + +--- + +## Nerd (Math) +Matematikai funkciók +:::tip + +A példák elé kell írni a kulcsszót: `nerd` + +Példa: `nerd.abs` + +::: +|Név|Leírás|Használat|Példa| +|---|---|---|---| +|abs|Visszaadja a megadott érték abszolút értékét.|`abs(n: number): number`|`abs(-2)`| +|kerek|Visszaadja a megadott érték kerekített értékét. Irányok: `fel, le, közel`|`kerek(n: number, direction: string): number`|`kerek(1.2, szaft"fel"szaft)`| +|sin|Visszaadja a megadott érték szinusz értékét.|`sin(n: number): number`|`sin(0)`| +|cos|Visszaadja a megadott érték koszinusz értékét.|`cos(n: number): number`|`cos(90)`| +|tan|Visszaadja a megadott érték tangens értékét.|`tan(n: number): number`|`tan(0)`| +|sqrt|Visszaadja a megadott érték gyökét.|`sqrt(n: number): number`|`sqrt(-2)`| +|legnagyobb|Visszaadja a megadott értékek közül a legnagyobbat.|`legnagyobb(...: number): number`|`legnagyobb(1,2,3)`| +|legkisebb|Visszaadja a megadott értékek közül a legkisebbet.|`legkisebb(...: number): number`|`legkisebb(1,2,3)`| +|pi|A pi értékét tárolja.|`pi: number`|`pi`| + +--- + +## Szaft (String) +Szöveggel lévő funkciók +:::tip + +A példák elé kell írni a kulcsszót: `szaft` + +Példa: `szaft.csemerd fel` + +::: +|Név|Leírás|Használat|Példa| +|---|---|---|---| +|csemerd fel|Visszaadja a megadott szöveget végig nagy betűkkel.|`csemerd fel(s: string): string`|`csemerd fel(szaft"TeSt"szaft)`| +|csemerd le|Visszaadja a megadott szöveget végig kis betűkkel.|`csemerd le(s: string): string`|`csemerd le(szaft"TeSt"szaft)`| +|hossz|Visszaadja a megadott szöveg hosszát.|`hossz(s: string): number`|`hossz(szaft"test"szaft)`| +|ismételd|A megadott szöveget `n` szer ismételve adja vissza.|`ismételd(s: string, n: number): string`|`ismételd(szaft"test"szaft, 3)`| +|uno reverse|A megadott szöveget fordítva adja vissza.|`uno reverse(s: string): string`|`uno reverse(szaft"test"szaft)`| +|darabos|Visszaadja a megadott szöveg egy darabját.|`darabos(s: string, start: number, end: number): string`|`darabos(szaft"test"szaft, 0, 1)`| +|keres|Megnézi, hogy a megadott szövegben megtalálható-e a másik szöveg.|`keres(s: string, find: string): boolean`|`keres(szaft"test"szaft,szaft"st"szaft)`| +|átrak|A megadott szövegben kicseréli a másik szöveget egy harmadikkal.|`átrak(s: string, from: string, to: string): string`|`átrak(szaft"test"szaft,szaft"st"szaft,szaft"bemb"szaft)`| +|számmá|A megadott szövegben az `n`-edik karakter szám megfelelőjét adja vissza.|`számmá(s: string, n: number): number`|`számmá(szaft"test"szaft,0)`| +|betűvé|A megadott szám betű megfelelőjét adja vissza.|`átrak(n: number): string`|`átrak(65)`| + +--- + +## Tábla (Table) +Táblákkal lévő funkciók +:::tip + +A példák elé kell írni a kulcsszót: `tábla` + +Példa: `tábla.hozzáad` + +::: +:::warning + +A funkciók végeredményét ajánlott beleírni a táblába, mert ez nem történik meg alapból. + +Példa: `a = tábla.hozzáad(a, 7)` + +::: +|Név|Leírás|Használat|Példa| +|---|---|---|---| +|hozzáad|Hozzáad egy értéket egy táblához.|`hozzáad(t: table, value: any): table`|`hozzáad({1,2,3}, 7)`| +|töröl|Töröl egy értéket a táblából.|`töröl(t: table, n: number): table`|`töröl({1,2,3}, 0)`| +|kulcsok|Visszaadja a tábla kulcsait egy másik táblában.|`kulcsok(t: table): table`|`kulcsok({1,2,3})`| +|hossz|Visszaadja a tábla hosszát.|`hossz(t: table): number`|`hozzáad({1,2,3})`| + +--- + +## Szenvedés (Process) +A feladattal kapcsolatos funkciók +:::tip + +A példák elé kell írni a kulcsszót: `szenvedés` + +Példa: `szenvedés.vége` + +::: +|Név|Leírás|Használat|Példa| +|---|---|---|---| +|vége|Befejezi a programot egy kilépő kóddal.|`vége(n: number)`|`vége(0)`| + +--- + +## Kábel (Net) +A nettel kapcsolatos funkciót +:::tip + +A példák elé kell írni a kulcsszót: `kábel` + +Példa: `kábel.halgass` + +::: +|Név|Leírás|Használat|Példa| +|---|---|---|---| +|halgass|Hallgat egy porton.|`halgass(host: string, port: number): halgató`|`halgass(szaft"0.0.0.0"szaft,1010)`| + +:::warning + +Ezek a funkciók kérik, hogy az első értékük a szülő táblájuk legyen + +::: + +### Halgató: +|Név|Leírás|Használat|Példa| +|---|---|---|---| +|kérés|Várakozik egy kérésre, majd visszaadja azt.|`kérés(listener: halgató): kapcsolat`|`kérés(listener)`| + +### Kapcsolat: +|Név|Leírás|Használat|Példa| +|---|---|---|---| +|olvass|Beleolvas a kapcsolatba.|`olvass(stream: kapcsolat, len: number): string`|`olvass(stream, 1024)`| +|írj|Beleír a kapcsolatba.|`írj(stream: kapcsolat, data: string)`|`írj(stream, szaft"Hello from ASL!"szaft)`| +|zár|Bezárja a kapcsolatot.|`zár(stream: kapcsolat)`|`zár(stream)`| + +--- + +## Intéző (Filesystem) +Fájlokkal lévő funkciók +:::tip + +A példák elé kell írni a kulcsszót: `intéző` + +Példa: `intéző.létezik` + +::: +:::warning + +A fájlok, helyét bárhogy megadhatod, viszont a törlésnél légy óvatos! + +A fájl írása felülírja a már fájlban lévő adatokat! + +::: +|Név|Leírás|Használat|Példa| +|---|---|---|---| +|létezik|Megnézi, hogy létezik-e az elérési út.|`létezik(path: string): boolean`|`létezik(szaft"test.asl"szaft)`| +|infó|Lekéri a metaadatokat az adott elérési útból.|`infó(path: string): table`|`infó(szaft"test.asl"szaft)`| +|mappít|Létrehozza a mappákat, hogy elérje az elérési útat.|`mappít(path: string)`|`mappít(szaft"test1/test2/"szaft)`| +|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)`| + +--- + +## 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/docs/versioned_docs/version-1.0.0/intro.md b/docs/versioned_docs/version-1.0.0/intro.md new file mode 100644 index 0000000..90445fd --- /dev/null +++ b/docs/versioned_docs/version-1.0.0/intro.md @@ -0,0 +1,23 @@ +--- +sidebar_position: 1 +description: Az Astro Lang bemutatása +--- + +# Astro Lang +Egy magyar + GenZ programozási nyelv + +--- + +Miben jobb: +- többszavas változók +- magyar kulcsszavak +- teljes értékű dokumentáció +- Rustban írt + +--- + +Példa: +```asl title="example.asl" +gethelj a = 10 +ugass(a) +``` \ No newline at end of file diff --git a/docs/versioned_docs/version-1.0.0/langfunctions.md b/docs/versioned_docs/version-1.0.0/langfunctions.md new file mode 100644 index 0000000..72244b1 --- /dev/null +++ b/docs/versioned_docs/version-1.0.0/langfunctions.md @@ -0,0 +1,301 @@ +--- +sidebar_position: 3 +description: Az Astro Lang fukciói +--- + +# Nyelvi funkciók + +--- + +## Assignment (Változó beállítás) +Kucsszó: `gethelj` + +Használat: `gethelj változó = érték` + +Példa: +```asl title="example.asl" +gethelj test = 17 +``` + +--- + +## Var read (Változó olvasás) +Kucsszó: `-` + +Használat: `változó` + +Példa: +```asl title="example.asl" +gethelj test = 17 +ugass(test) +``` + +--- + +## Var update (Változó frissítés) +Kucsszó: `-` + +Használat: `változó = érték` + +Példa: +```asl title="example.asl" +gethelj test = 17 +ugass(test) +test = 18 +ugass(test) +``` + +--- + +## Function (Funkció) +Kucsszó: `lőcsve` + +Használat: `lőcsve változó(változók) {lefutatott kód}` + +Példa: +```asl title="example.asl" +lőcsve test(a) { + //Ez akkor fut le mikor meghívod a funkciót +} +test(8) //így tudsz meghívni egy funkciót, ebben az esetben az "a" 8 lesz +``` + +--- + +## If (Ha) +Kulcsszó: `ha geny` + +Használat: `ha geny(feltétel) {ha igaz}` + +Példa: +```asl title="example.asl" +ha geny(piszv) { + //Ez akkor fut le, ha a feltétel igaz + //Ebben az esetben mindig +} +``` + +--- + +## Else (Különben) +Kulcsszó: `ha nem geny` + +Használat: `ha nem geny {ha hamis}` + +Példa: +```asl title="example.asl" +ha geny(nem piszv) { + //Ez akkor fut le, ha a feltétel igaz + //Ebben az esetben soha +} ha nem geny { + //Ez akkor fut le, ha a feltétel hamis + //Ebben az esetben mindig +} +``` + +:::tip + +Nem kötelező egyből a ha után rakni, a kódban bárhol elfogadható és az előzőleg lefutott if-t veszi figyelembe. + +::: + +--- + +## Else if (Különben-Ha) +Kulcsszó: `ha nem geny akkor geny` + +Használat: `ha nem geny akkor geny(feltétel) {ha igaz}` + +Példa: +```asl title="example.asl" +ha geny(nem piszv) { + //Ez akkor fut le, ha a feltétel igaz + //Ebben az esetben soha +} ha nem geny akkor geny(piszv) { + //Ez akkor fut le, ha az előző if feltétele hamis és a feltétel igaz + //Ebben az esetben mindig +} +``` + +:::tip + +Nem kötelező egyből a ha után rakni, a kódban bárhol elfogadható és az előzőleg lefutott if-t veszi figyelembe. + +::: + +--- + +## While (Amíg) +Kulcsszó: `amíg geny` + +Használat: `amíg geny(feltétel) {amíg igaz}` + +Példa: +```asl title="example.asl" +amíg geny(piszv) { + //Ez addig fut le, amíg a feltétel igaz + //Ebben az esetben örökké fog futni +} +``` + +--- + +## For (Változós amíg) +Kulcsszó: `kopva` + +Használat: `kopva(beállítás;feltétel;frissítés) {amíg igaz}` + +:::info + +A beállítás első futás előtt fut le, csak 1 utasítást tartalmazhat. + +A frissítés minden futás után fut le, csak 1 utasítást tartalmazhat. + +::: + +Példa: +```asl title="example.asl" +kopva(gethelj i = 0; i < 10; i = i + 1) { + //Ez addig fut le, amíg a feltétel igaz +} +``` + +--- + +## Break (Törés) +Kulcsszó: `kraf` + +Használat: `kraf` + +Példa: +```asl title="example.asl" +kopva(gethelj i = 0; i < 10; i = i + 1) { + kraf //Ez az első futásnál be fogja fejezni az amíg-ot +} +``` + +--- + +## Continue (Folytasd) +Kulcsszó: `szard le` + +Használat: `szard le` + +Példa: +```asl title="example.asl" +kopva(gethelj i = 0; i < 10; i = i + 1) { + ugass(i) + szard le + ugass(78) //Ez soha nem fog lefutni, mert át lesz ugorva +} +``` + +--- + +## Return (Funkció visszadása) +Kulcsszó: `reti` + +Használat: `reti [változó]` + +Példa: +```asl title="example.asl" +lőcsve test(a) { + reti a +} +gethelj a = test(8) //Az "a" értéke "8" lesz, mert azt adja vissza. +``` + +--- + +## Import (Betöltés) +Kulcsszó: `hámozd, be/ba` + +Használat: `hámozd változó be/ba` + +:::tip + +Ez egyből létrehoz egy változót. +Pontos fájlnevet tudsz megadni! + +::: + +Példa: +```asl title="example.asl" +hámozd test be szaft"test.asl"szaft +``` + +--- + +## Table (Tábla) + +:::tip + +A kulcs bármilyen érték típus lehet, kivéve: funkció, tábla. + +::: + +### Létrehozás +Használat: `{érték,érték}, {[kulcs]=érték}` + +Példa: +```asl title="example.asl" +gethelj a = {1,2,3} +``` + +### Lekérés +Használat: `tábla[kulcs]` + +Példa: +```asl title="example.asl" +gethelj a = {1,2,3} +ugass(a[0]) // 1 +``` + +### Gyors lekérés +Használat: `tábla.kulcs` + +:::warning + +Csak a szöveges kulcsokkal működik, viszont több szót is támogat! + +::: + +Példa: +```asl title="example.asl" +gethelj a = {1,2,3,[szaft"test"szaft]=73} +ugass(a.test) // 73 +``` + +### Beállítás +Használat: `tábla[kulcs] = érték` + +Példa: +```asl title="example.asl" +gethelj a = {1,2,3} +ugass(a[0]) // 1 +a[0] = 12 +ugass(a[0]) // 12 +``` + +--- + +## Try/Catch (Próbáld ki) +Kulcsszó: `piszolj, csecs` + +Használat: `piszolj {amit ki kell próbálni} csecs (error) {ha hiba}` + +:::warning + +A catch rész itt nem rakható bárhova, nem úgy mint az if-nél! + +::: + +Példa: +```asl title="example.asl" +piszolj { + gethelj test = szaft"a"szaft+1 +} csecs (e) { + //Ez akkor fog lefutni, mikor hiba van + ugass(e) +} +``` \ No newline at end of file diff --git a/docs/versioned_docs/version-1.0.0/syntax.md b/docs/versioned_docs/version-1.0.0/syntax.md new file mode 100644 index 0000000..794b9b3 --- /dev/null +++ b/docs/versioned_docs/version-1.0.0/syntax.md @@ -0,0 +1,49 @@ +--- +sidebar_position: 2 +description: Az Astro Lang synatx bemutatása +--- + +# Syntax + +--- + +## Típusok: +|Típus neve|Magyar neve|Leírása|Példa| +|---|---|---|---| +|String|Szöveg|Minden ami szöveg.|`szaft"test"szaft`| +|Number|Szám|Minden ami szám.|`2, 3.14, -5`| +|Identifier|Azonosító|A változók, dolgok neve/azonosítója, több szót is támogat. Fontos: szám nem lehet a szavak elején, mert az már számnak számít!|`teszt, több szót is támogat, ez is jo72`| +|Operator|Művelet|Minden ami művelet.|`+, -, *`| +|Keyword|Kulcsszó|Azok az azonosítók amelyek valamilyen funkciót látnak el a programnyelben.|`gethelj, lőcsve, ha geny`| +|Separator|Elválasztó|Olyan karakterek, melyek elválaszják a többi típust egymástól.|`=, (, {`| + +Példa: +```asl +gethelj a = 15 + 2 +^ ^ ^ ^ ^ ^ Number +| | | | | Operator +| | | | Number +| | | Separator +| | Identifier +| Keyword +``` + +## Egyéb: +### Komment: +Ezek nem befolyásolják a kód futását, csak leírást adnak arról, hogy mi mit csinál. +- Egysoros kommentet így tudsz létrehozni: `//komment` +- Többsoros kommentet pedig így: `/*komment*/` +### Logikai érték: +:::info + +A nyelv ezeket kulcsszóként kezeli! + +::: +Igaz (piszv) vagy hamis (nem piszv) +### Semmi: +:::info + +A nyelv ezt is kulcsszóként kezeli! + +::: +Null (nincs hám) \ No newline at end of file diff --git a/docs/versioned_sidebars/version-1.0.0-sidebars.json b/docs/versioned_sidebars/version-1.0.0-sidebars.json new file mode 100644 index 0000000..2782dc0 --- /dev/null +++ b/docs/versioned_sidebars/version-1.0.0-sidebars.json @@ -0,0 +1,8 @@ +{ + "sidebar": [ + { + "type": "autogenerated", + "dirName": "." + } + ] +} diff --git a/docs/versions.json b/docs/versions.json index 3145067..25a2ff2 100644 --- a/docs/versions.json +++ b/docs/versions.json @@ -1,3 +1,4 @@ [ + "1.0.0", "0.2.0" ] diff --git a/extension/asl.png b/extension/asl.png new file mode 100644 index 0000000..cbed5a6 Binary files /dev/null and b/extension/asl.png differ diff --git a/extension/astrolang-extension-1.0.0.vsix b/extension/astrolang-extension-1.0.0.vsix new file mode 100644 index 0000000..6170be4 Binary files /dev/null and b/extension/astrolang-extension-1.0.0.vsix differ diff --git a/extension/package.json b/extension/package.json index 4573a41..6f0101d 100644 --- a/extension/package.json +++ b/extension/package.json @@ -1,9 +1,12 @@ { - "name": "asl-extension", - "version": "0.2.0", + "name": "astrolang-extension", + "displayName": "Astro Lang", + "icon": "asl.png", + "version": "1.0.0", "description": "The extension for Astro Lang", "license": "MIT", "author": "Afonya", + "publisher": "afonya", "type": "module", "main": "index.js", "repository": {