Eekboek stuurtaal: verschil tussen versies

Uit EekBoek
Naar navigatie springenNaar zoeken springen
(Nieuwe pagina aangemaakt met ' EekBoek is een mooi voorbeeld van een 'Domain Specific Language' (DSL) (Zie de uitgebreide [http://www.martinfowler.com/bliki/DomainSpecificLanguage.html verhandeling…')
 
kGeen bewerkingssamenvatting
 
(12 tussenliggende versies door 3 gebruikers niet weergegeven)
Regel 1: Regel 1:
EekBoek is een mooi voorbeeld van een 'Domain Specific Language' (DSL) (Zie de uitgebreide [http://www.martinfowler.com/bliki/DomainSpecificLanguage.html verhandelingen over DSL's] van Martin Fowler).
EekBoek is een mooi voorbeeld van een 'Domain Specific Language' (DSL) (Zie de uitgebreide [http://www.martinfowler.com/bliki/DomainSpecificLanguage.html verhandelingen over DSL's] van Martin Fowler).


Regel 5: Regel 4:


De commando's kunnen interactief ingevoerd worden binnen de 'ebshell' maar ook ingevoerd in afzonderlijke bestanden die vervolgens als 'batch' verwerkt kunnen worden. Dit opent de mogelijkheid tot het automatiseren van (delen van) de boekhouding aan de hand van bijvoorbeeld geexporteerde bankafschriften. Met een programma of script kunnen de bankafschriften omgezet worden naar EekBoek commando's die vervolgens automatisch verwerkt kunnen worden.
De commando's kunnen interactief ingevoerd worden binnen de 'ebshell' maar ook ingevoerd in afzonderlijke bestanden die vervolgens als 'batch' verwerkt kunnen worden. Dit opent de mogelijkheid tot het automatiseren van (delen van) de boekhouding aan de hand van bijvoorbeeld geexporteerde bankafschriften. Met een programma of script kunnen de bankafschriften omgezet worden naar EekBoek commando's die vervolgens automatisch verwerkt kunnen worden.
== Syntax ==
=== Conventies ===
* ? = optioneel
* * = nul of meer
* + = een of meer
* | = alternatieven
* ( ... ) = groepering
* '''''regel''''' = referentie naar een andere syntaxregel (vet-cursief)
* '''woord''' = letterlijke tekst (vet)
Voorbeeld: <b><i>regel</i></b>+ is een of meer regels, optioneel gescheiden door een backslash ('\').
=== Boekingen ===
<div style="font-family: Monospace">
{|
| [http://www.eekboek.nl/docs/bookings/payable.html Inkoopfactuur]:
| inkoop(:nr)? datum omschrijving crediteur (--totaal=bedrag)? <b><i>regel</i></b>+
|-
| [http://www.eekboek.nl/docs/bookings/receivable.html Verkoopfactuur]:
| verkoop(:nr)? datum omschrijving debiteur (--totaal=bedrag)? <b><i>regel</i></b>+
|-
| [http://www.eekboek.nl/docs/bookings/bank.html Bankafschrift]:
| bank(:nr)? datum omschrijving (--totaal=bedrag <nowiki>|</nowiki> --saldo=bedrag)* (<b><i>crd_regel</i></b> <nowiki>|</nowiki> <b><i>deb_regel</i></b> <nowiki>|</nowiki> <b><i>std_regel</i></b>)+
|-
| [http://www.eekboek.nl/docs/bookings/cash.html Kas]:
| kas(:nr)? datum omschrijving (--totaal=bedrag <nowiki>|</nowiki> --saldo=bedrag)* (<b><i>crd_regel</i></b> <nowiki>|</nowiki> <b><i>deb_regel</i></b> <nowiki>|</nowiki> <b><i>std_regel</i></b>)+
|-
| [http://www.eekboek.nl/docs/bookings/memorial.html Memoriaal]:
| memoriaal(:nr)? datum omschrijving (<b><i>crd_regel</i></b> <nowiki>|</nowiki> <b><i>deb_regel</i></b> <nowiki>|</nowiki> <b><i>std_regel</i></b>)+
|-
| <b><i>crd_regel</i></b>:
| <b>crd</b> datum? crediteur bedrag
|-
| <b><i>deb_regel</i></b>:
| <b>deb</b> datum? debiteur bedrag
|-
| <b><i>std_regel</i></b>:
| <b>std</b> datum? <b><i>regel</i></b>
|-
| <b><i>regel</i></b>:
| omschrijving bedrag rekening
|}
</div>

Huidige versie van 17 mrt 2011 om 18:39

EekBoek is een mooi voorbeeld van een 'Domain Specific Language' (DSL) (Zie de uitgebreide verhandelingen over DSL's van Martin Fowler).

Doordat het een 'taal' is, is EekBoek goed toegankelijk voor programmeurs en andere IT-specialisten die gewend zijn aan het werken met zelfgeschreven scripts en programma's.

De commando's kunnen interactief ingevoerd worden binnen de 'ebshell' maar ook ingevoerd in afzonderlijke bestanden die vervolgens als 'batch' verwerkt kunnen worden. Dit opent de mogelijkheid tot het automatiseren van (delen van) de boekhouding aan de hand van bijvoorbeeld geexporteerde bankafschriften. Met een programma of script kunnen de bankafschriften omgezet worden naar EekBoek commando's die vervolgens automatisch verwerkt kunnen worden.

Syntax

Conventies

  • ? = optioneel
  • * = nul of meer
  • + = een of meer
  • | = alternatieven
  • ( ... ) = groepering
  • regel = referentie naar een andere syntaxregel (vet-cursief)
  • woord = letterlijke tekst (vet)

Voorbeeld: regel+ is een of meer regels, optioneel gescheiden door een backslash ('\').

Boekingen

Inkoopfactuur: inkoop(:nr)? datum omschrijving crediteur (--totaal=bedrag)? regel+
Verkoopfactuur: verkoop(:nr)? datum omschrijving debiteur (--totaal=bedrag)? regel+
Bankafschrift: bank(:nr)? datum omschrijving (--totaal=bedrag | --saldo=bedrag)* (crd_regel | deb_regel | std_regel)+
Kas: kas(:nr)? datum omschrijving (--totaal=bedrag | --saldo=bedrag)* (crd_regel | deb_regel | std_regel)+
Memoriaal: memoriaal(:nr)? datum omschrijving (crd_regel | deb_regel | std_regel)+
crd_regel: crd datum? crediteur bedrag
deb_regel: deb datum? debiteur bedrag
std_regel: std datum? regel
regel: omschrijving bedrag rekening