TG-lang

TG-lang Lab

Skriv TG-lang, transpiler, og kjor direkte i nettleseren.

Useless util TG26 av 1tb

Editor

Skriv, last inn eksempler og kjor TG-lang kode.

Vikingskip canvas

Grafisk output for vikingskip-programmer.

Aktiveres automatisk nar programmet starter med vikingskip.

Program output

Konsoll og transpileringsresultat.

(ingen output)

Generert JavaScript

(ingen JavaScript generert)

Debugger

Live runtime-hook for TG-lang. Klar for videre stepping og breakpoint-stotte.

Idle
Faseidle
Mode
Run ID
Statements0
Outputlinjer0
Piksler0
Canvasikke aktiv
JS-storrelse0
Kildetekst0 tegn
Kreativiaingen tast

Debuggeren viser kompilering, runtime-faser og hendelser mens programmet kjører.

Runtime-logg

Ingen runtime-hendelser enda. Kjor et TG-lang-program for a fylle debuggerloggen.

TG-lang språkdefinisjon

Språkregler og runtime-referanse.

Full TG-lang spesifikasjon på GitHub

Programstruktur

  • Et program starter med innsjekk og avsluttes med søndag.
  • Valgfri grafikkmodus startes med vikingskip på egen linje før innsjekk.
  • I grafikkmodus settes oppløsning med hovedscene arne .... Hvis ikke oppgitt brukes standard oppløsning 16.

Verdier og uttrykk

  • arne representerer 1. Flere arne i sekvens gir tilsvarende heltall.
  • rop er et uttrykk som konverterer arne-baserte verdier til bokstaver.
  • pall gir en runtime-generert tallverdi der | 1 brukes på heltallsdelen, men desimaldelen beholdes.
  • premiumparkering representerer PI.
  • expo(theta-arne) representerer sin(theta).
  • trafikklys(theta-arne) representerer tan(theta).
  • seating len-arne(expr, expr, ...) lager en fast array med angitt lengde og valgfrie startverdier.
  • str noc index-arne henter tegn eller element med 1-basert indeks fra streng eller seating-array.
  • navn noc indeks = verdi skriver verdi til et seating-element med direkte array-indeks.
  • lørdag arr returnerer arr.join('').
  • rop støtter uttrykk og konkatenering med crew.
  • Talltegn er ikke tillatt i kildekoden. Numeriske verdier må uttrykkes med arne-sekvenser.

Hendelser (kreativia)

  • kreativia tastatur handler registrerer en tastatur-lytter for keypress.
  • Tastetrykk oppgis som et uttrykk, typisk rop arne ..., slik at bokstaver matches via event.key og ikke keyCode.
  • For enkle bokstaver normaliseres tasten til store bokstaver, slik at kreativia rop arne handler matcher både a og A.
  • Handleren kalles med den faktiske tasten som argument.
  • Alle lyttere ryddes automatisk opp når programmet stopper.
  • Programmer som bruker kreativia forblir aktive til du trykker Stopp.

Output

  • infodesk expr eller infodesk(expr) skriver til output.
  • I tekstmodus vises output i tekstpanel.
  • I vikingskip-modus vises grafisk output i canvas.

Operatorer

  • crew = +
  • deltager = -
  • kandu = *
  • medic = /
  • kandustyre = %
  • foam = <
  • maof = >
  • kanalseks = ==

Kontrollflyt

  • secbua (betingelse) { ... } for if-blokk.
  • ombud { ... } som valgfri else-blokk.

Funksjoner

  • hylle navn(a b) => { ... } definerer funksjon.
  • tech expr returnerer verdi.
  • Funksjonskall awaites automatisk i generert kode, både på toppnivå og nested.

Runtime-kommandoer

  • sovetelt(expr) { } pauser kjøring i expr sekunder.
  • attentiongrab(expr) kaster en feil.
  • piksel(x, y) setter en piksel i canvas i vikingskip-modus.
  • onsdag expr, torsdag expr, fredag expr setter r, g og b i fargeregisteret.
  • Fargedybde per kanal er arne arne arne arne kandu arne arne arne arne (0 til 15).
  • Etter hver piksel resettes fargeregisteret til rgb(0, 0, 0).

Avbrytelse

  • Stopp-knappen avbryter bare den aktive TG-kjøringen.
  • Avbrytelse virker også under venting i sovetelt og i rekursive kjøringer.