NLLang — een speelse programmeertaal met Nederlandse sleutelwoorden, geschreven in PHP.

Maintainers

Package info

github.com/aagjalpankaj/nllang

pkg:composer/aagjalpankaj/nllang

Statistics

Installs: 2

Dependents: 0

Suggesters: 0

Stars: 1

Open Issues: 0

v0.1.0 2026-06-27 15:32 UTC

This package is auto-updated.

Last update: 2026-06-27 19:36:00 UTC


README

CI

NLLang is een speelse programmeertaal met Nederlandse sleutelwoorden, geschreven in PHP.


⚠️ Waarschuwing: NLLang is gebouwd voor kinderen, nieuwsgierige geesten en mensen die te veel Nederlandse koffie hebben gedronken. Gebruik het niet in productie.

NLLang demo

Installatie

Homebrew (aanbevolen)

brew tap aagjalpankaj/nllang
brew install nllang

Composer

Vereisten: PHP 8.1 of hoger en Composer.

composer global require aagjalpankaj/nllang

Eenmalige instelling: Zorg dat Composer's globale bin-map in je $PATH staat. Voeg dit toe aan ~/.zshrc of ~/.bashrc:

export PATH="$PATH:$(composer global config bin-dir --absolute)"

Herlaad je shell daarna met source ~/.zshrc. Als je dit al eerder hebt gedaan voor een ander globaal Composer-pakket, is deze stap niet nodig.

Gebruik

Maak een nieuw bestand aan (test.nl)

Bewerk het bestand in een teksteditor.

hoi
  zeg "Hoi, wereld!";
doei

Uitvoeren

nllang test.nl

Uitvoer

Hoi, wereld!

Documentatie

Algemeen

hoi is het beginpunt van een programma en elk programma moet eindigen met doei. Alles buiten deze blokken wordt genegeerd.

Dit wordt genegeerd

hoi
  // Schrijf hier je code
doei

Dit ook

Variabelen

Variabelen worden gedeclareerd met stel. Meerdere variabelen kunnen in één statement worden gedeclareerd.

hoi
  stel a = 10;
  stel b = "twee";
  stel c = 15;
  stel d, e = 5, f;
  a = a + 1;
  b = 21;
  c *= 2;
doei

Typen

Getallen en teksten werken zoals in andere talen. Lege waarden worden aangeduid met niets. waar en onwaar zijn de booleaanse waarden.

hoi
  stel a = 10;
  stel b = 10 + (15 * 20);
  stel c = "tekst";
  stel d = 'ook tekst';
  stel e = 3.14;
  stel f = niets;
  stel g = waar;
  stel h = onwaar;
doei

Ingebouwde functies

Gebruik zeg om iets af te drukken. Meerdere waarden worden gescheiden door een spatie.

hoi
  zeg "Hoi, wereld!";
  stel a = 10;
  {
    stel b = 20;
    zeg a + b;
  }
  zeg 5, 'ok', niets, waar, onwaar;
doei
Hoi, wereld!
30
5 ok niets waar onwaar

Bewerkingen

NLLang ondersteunt de gebruikelijke rekenkundige en vergelijkingsoperatoren. Strings worden samengevoegd met +.

hoi
  stel a = 10, b = 3;

  zeg a + b;   // 13
  zeg a - b;   // 7
  zeg a * b;   // 30
  zeg a / b;   // 3.333...
  zeg a % b;   // 1

  zeg a == 10; // waar
  zeg a != b;  // waar
  zeg a > b;   // waar
  zeg a <= 10; // waar

  zeg "Neder" + "land"; // Nederland

  a += 5;
  b *= 2;
  zeg a, b;

  // Logische ontkenning
  zeg niet waar;  // onwaar
  zeg !onwaar;    // waar
doei

Voorwaarden

NLLang ondersteunt als/anders als/anders constructies. Het als blok wordt uitgevoerd als de voorwaarde waar is, anders wordt een anders als blok uitgevoerd als de bijbehorende voorwaarde waar is, en het anders blok wordt uitgevoerd als alle voorwaarden onwaar zijn.

hoi
  stel score = 75;

  als (score >= 90) {
    zeg "Uitstekend!";
  } anders als (score >= 70) {
    zeg "Goed gedaan!";
  } anders als (score >= 50) {
    zeg "Voldoende.";
  } anders {
    zeg "Onvoldoende.";
  }
doei
Goed gedaan!

Lussen

Statements in een zolang blok worden herhaald zolang de voorwaarde waar is. Gebruik stop om de lus te verlaten en verder om naar de volgende iteratie te gaan.

hoi
  stel i = 0;
  zolang (i < 10) {
    i += 1;
    als (i == 5) {
      zeg "Vijf! Doorgaan...";
      verder;
    }
    als (i == 8) {
      zeg "Stop bij acht.";
      stop;
    }
    zeg i;
  }
  zeg "Klaar!";
doei
1
2
3
4
Vijf! Doorgaan...
6
7
Stop bij acht.
Klaar!

Functies

Definieer functies met taak en geef een waarde terug met geef. Functies zijn recursief aanroepbaar.

hoi
  taak begroet(naam) {
    zeg "Hoi, " + naam + "!";
  }

  taak faculteit(n) {
    als (n <= 1) {
      geef 1;
    }
    geef n * faculteit(n - 1);
  }

  begroet("wereld");
  zeg faculteit(6);
doei
Hoi, wereld!
720

Lijsten

Maak lijsten aan met [...]. Gebruik de ingebouwde functies lengte, duw en pop om lijsten te bewerken.

hoi
  stel getallen = [1, 2, 3];
  zeg lengte(getallen);    // 3
  zeg getallen[0];         // 1

  getallen[1] = 99;
  getallen = duw(getallen, 4);
  zeg getallen;            // [1, 99, 3, 4]

  getallen = pop(getallen);
  zeg getallen;            // [1, 99, 3]
doei

Voor-elk lus

Gebruik voor elk om over een lijst te itereren. stop en verder werken ook hier.

hoi
  stel namen = ["Alice", "Bob", "Charlie"];

  voor elk naam in namen {
    zeg "Hoi, " + naam + "!";
  }

  // Sla even getallen over
  stel cijfers = [1, 2, 3, 4, 5];
  voor elk n in cijfers {
    als (n % 2 == 0) {
      verder;
    }
    zeg n;
  }
doei
Hoi, Alice!
Hoi, Bob!
Hoi, Charlie!
1
3
5

Gebruikersinvoer

Lees invoer van de gebruiker met vraag(). Gebruik getal() en tekst() om typen om te zetten.

hoi
  stel naam = vraag("Wat is je naam? ");
  zeg "Hoi, " + naam + "!";

  stel leeftijd = getal(vraag("Hoe oud ben je? "));
  als (leeftijd >= 18) {
    zeg "Je bent volwassen.";
  } anders {
    zeg "Je bent " + tekst(18 - leeftijd) + " jaar van volwassen.";
  }
doei

Scoping

Variabelen leven in het blok waarin ze zijn gedeclareerd. Een binnenste blok kan variabelen van buiten lezen, maar kan ze ook overschaduwen met een nieuwe declaratie.

hoi
  stel x = 5;
  {
    stel x = 99;
    zeg x; // 99
  }
  zeg x; // 5
doei

Commentaar

Gebruik // voor regelcommentaar en /* */ voor blokcommentaar.

hoi
  // Dit is een regelcommentaar
  stel a = 10; // ook hier

  /*
    Dit is
    blokcommentaar
  */
  zeg a;
doei

Sleutelwoordenlijst

NLLang Betekenis
hoi begin van het programma
doei einde van het programma
stel variabele declareren
zeg afdrukken naar de console
als als-voorwaarde
anders als anders-als-voorwaarde
anders anders-blok
zolang zolang-lus
stop verlaat de lus
verder volgende iteratie
voor elk ... in itereer over een lijst
taak functie definiëren
geef waarde teruggeven uit functie
niet / ! logische ontkenning
waar booleaanse waarde waar (true)
onwaar booleaanse waarde onwaar (false)
niets lege waarde (null)

Ingebouwde functies

Functie Beschrijving
zeg(...) Afdrukken naar de console
vraag(prompt) Lees een regel invoer van de gebruiker
lengte(lijst) Geef de lengte van een lijst
duw(lijst, waarde) Voeg een waarde toe aan het einde van een lijst
pop(lijst) Verwijder het laatste element van een lijst
tekst(waarde) Zet een waarde om naar tekst
getal(waarde) Zet een waarde om naar een getal

Voorbeelden

Bekijk de map examples/ voor kant-en-klare voorbeeldprogramma's: