New web­site design

This is a short ab­stract to demon­strate what the ab­stract thingy can do. sus urna, eget pre­tium mauris dictum ut. Donec gravida arcu et lorem auctor phare­tra. Aenean at tel­lus tortor, sit amet eu­is­mod enim. Etiam massa urna, or­n­are ac or­n­are nec, mo­lestie vel tortor. Vivamus pulv

Lorem Ipsum

Miss Brooke had that kind of beauty which seems to be thrown into re­lief by poor dress. Her hand and wrist were so finely formed that she could wear sleeves not less bare of style than those in which the Blessed Vir­gin ap­peared to Italian paint­ers; and her pro­file as well as her stature and bear­ing seemed to gain the more dig­nity from her plain gar­ments, which by the side of pro­vin­cial fash­ion gave her the im­press­ive­ness of a fine quo­ta­tion from the Bible,—or from one of our elder po­ets,—in a para­graph of to-day’s news­pa­per. She was usu­ally spoken of as be­ing re­mark­ably clever, but with the ad­di­tion that her sis­ter Celia had more com­mon-sense. Nev­er­the­less, Celia wore scarcely more trim­mings; and it was only to close ob­serv­ers that her dress differed from her sis­ter’s, and had a shade of coquetry in its ar­range­ments; for Miss Brooke’s plain dress­ing was due to mixed con­di­tions, in most of which her sis­ter shared. The pride of be­ing ladies had something to do with it: the Brooke con­nec­tions, though not ex­actly ar­is­to­cratic, were n=112n un­ques­tion­ably "good:" if you in­quired back­ward for a gen­er­a­tion or two, you would not find any yard-meas­ur­ing or par­cel-ty­ing fore­fath­ers—any­thing lower than an ad­miral or a cler­gy­man; and there was even an an­cestor dis­cern­ible as a Pur­itan gen­tle­man who served un­der Crom­well, but af­ter­wards con­formed, and man­aged to come out of all polit­ical troubles as the pro­pri­etor of a re­spect­able fam­ily es­tate. Young wo­men of such birth, liv­ing in a quiet coun­try-house, and at­tend­ing a vil­lage church hardly lar­ger than a par­lor, nat­ur­ally re­garded frip­pery as the am­bi­tion of a huck­ster’s daugh­ter. Then there was well-bred eco­nomy, which in those days made show in dress the first item to be de­duc­ted from, when any mar­gin was re­quired for ex­penses more dis­tinct­ive of rank. Such reas­ons would have been enough to ac­count for plain dress, quite apart from re­li­gious feel­ing; but in Miss Brooke’s case, re­li­gion alone would have de­term­ined it; and Celia

Lorem ipsum dolor sit amet, con­sect­etur adip­is­cing elit. Mauris nibh est, posuere sit amet pulvinar a, port­titor sed urna. Cras sed enim a lorem lobortis ali­quet id at tortor. Ali­quam tin­cidunt adip­is­cing orci, ut dapibus odio eleifend in. In­teger felis libero, tin­cidunt eget fa­cilisis ut, dapibus sit amet libero. Pel­lent­esque ali­quam cursus urna, eget pre­tium mauris dictum ut. Donec gravida arcu et lorem auctor phare­tra. Aenean at tel­lus tortor, sit amet eu­is­mod enim. Etiam massa urna, or­n­are ac or­n­are nec, mo­lestie vel tortor. Vivamus pulvinar elit pel­lent­esque metus porta ut ven­enatis ante congue. Proin est lorem, con­di­mentum non sodales a, viverra vehicula purus. Pel­lent­esque hab­it­ant morbi tri­stique senectus et netus et malesuada fames ac turpis eges­tas. Pel­lent­esque dig­n­is­sim, eros vel laoreet malesuada, erat neque ul­trices ligula, quis viverra lectus mi a nulla. In elit mauris, eleifend eges­tas lobortis et, tri­stique sed turpis. Donec ullam­corper la­cinia iaculis. Nulla fa­cil­isi. Ut ut sapien vitae tortor pel­lent­esque adipiscing.

A note.
A tip.
Something important.
A warning.
Something to cau­tion for.

Nam fa­cilisis rutrum nunc sed con­sect­etur. Donec scel­er­isque luc­tus scel­er­isque. Nunc id enim ut arcu fer­mentum tin­cidunt. Ves­ti­bu­lum ante ipsum primis in faucibus orci luc­tus et ul­trices posuere cu­bilia Curae; Nul­lam in sol­li­citudin urna. Pel­lent­esque hab­it­ant morbi tri­stique senectus et netus et malesuada fames ac turpis eges­tas. Pel­lent­esque hab­it­ant morbi tri­stique senectus et netus et malesuada fames ac turpis eges­tas. In port­titor in­ter­dum nisi at dig­n­is­sim. Cras sem­per purus sit amet elit in­ter­dum sem­per. Ves­ti­bu­lum vitae nibh quam, ac phare­tra eros. Donec mauris au­gue, laoreet eu pel­lent­esque sit amet, tin­cidunt vitae justo. Ali­quam com­modo, enim vitae ul­trices feu­giat, magna risus pla­cerat diam, ac feu­giat dolor nisl sed orci. Sus­pen­disse justo elit, fer­mentum nec la­cinia in, fa­cilisis sed ante. Proin sed turpis eros. Ali­quam sed urna nibh, non ul­tri­cies orci. Mauris scel­er­isque con­sect­etur luc­tus. Ut quam nulla, vo­lut­pat eges­tas tem­por nec, con­sequat quis turpis. Mauris lorem nisl, feu­giat id auctor non, feu­giat quis mi. Ves­ti­bu­lum tri­stique gravida enim, ac gravida tortor lobortis et. Lorem ipsum dolor sit amet, con­sect­etur adip­is­cing elit.

Phasel­lus im­perdiet, magna tin­cidunt cursus sodales, dolor felis pre­tium magna, in phare­tra massa nisl vehicula nisi. Nul­lam vehicula tri­stique nulla, fringilla scel­er­isque nulla cursus et. Ves­ti­bu­lum con­sect­etur tin­cidunt odio sed vo­lut­pat. Aenean id libero in risus iaculis feu­giat. Praesent la­cinia turpis id mauris rutrum ut iaculis dui tin­cidunt. Phasel­lus non quam risus. Sus­pen­disse po­tenti. Phasel­lus ele­mentum sem in urna vo­lut­pat tem­pus. Praesent eget lectus sed nisl in­ter­dum con­sequat vitae sed orci. Ali­quam ul­trices erat at tortor adip­is­cing dictum ul­trices dui cursus. Nunc in dui neque, ut viverra nulla. Nulla mi eros, porta phare­tra bibendum sit amet, laoreet non purus. Donec pre­tium libero ac est in­ter­dum a dig­n­is­sim felis eu­is­mod. Donec luc­tus mi eu est pre­tium tin­cidunt. Praesent eget est dolor, quis vo­lut­pat eros. Vivamus tri­stique im­perdiet erat non in­ter­dum. Duis in felis in massa malesuada in­ter­dum vel in metus.

Dit is een klein voor­beeld van pro­gram­ma­code. Het gaat hier om main.cpp uit mijn proglang prgrameer taaltje—waarover later meer. Voor nu, hier is de code:

main.cpp
    1: #include "fixups.h"
    2: #include "Parser/Parser.h"
    3: #include "IR/IntRep.h"
    4: #include "IR/SymbolVertex.h"
    5: #include "Interpreter/Interpreter.h"
    6: #include "Interpreter/Value.h"
    7: #include <fstream>
    8: #include "Passes/Validator.h"
    9:
   10: sint32 Main(const vector<string>& args)
   11: {
   12:    wcerr << L"Simple C++ interpreter for the "
   13:       L"language using ≔ and ↦." << endl;
   14:    wcerr << endl;
   15:    if(args.size() < 3)
   16:    {
   17:       wcerr << "Usage: proglang source_file "
   18:          L"function [arguments]*" << endl;
   19:       throw std::runtime_error("Not enough arguments.");
   20:    }
   21:
   22:    // Open
   23:    std::wifstream input;
   24:    input.open(encodeLocal(args[1]), std::ios_base::in);
   25:    if(!input.good())
   26:       throw std::runtime_error("Could not open source file.");
   27:
   28:    // Parse file                             
   29:    wcerr << L"Parsing file…" << flush;
   30:    IntRep* ir = new IntRep();
   31:    Parser parser(ir);
   32:    while(input.good())
   33:    {
   34:       string line;
   35:       std::getline<wchar>(input, line);
   36:       parser.parseLine(line);
   37:    }
   38:    wcerr << endl;
   39:
   40:    // Validate IR                            
   41:    wcerr << L"Validating…" << flush;
   42:    wcerr << endl << endl;
   43:    Validator validator(ir);
   44:    validator.validate();
   45:    wcerr << endl;
   46:
   47:    // Find function to call
   48:    SymbolVertex* functionSymbol = 0;
   49:    foreach(SymbolVertex* symbol, ir->symbols())
   50:       if(symbol->identifier() == args[2])
   51:          functionSymbol = symbol;
   52:    if(!functionSymbol)
   53:       throw std::runtime_error(
   54:          "Could not find specified function.");
   55:
   56:    // Parse arguments                        
   57:    vector<Value> arguments;
   58:    for(unsigned int i = 3; i < args.size(); i++)
   59:    {
   60:       sint64 integer;
   61:       double real;
   62:       if(parse<sint64>(args[i], integer))
   63:          arguments.push_back(integer);
   64:       else if(parse<double>(args[i], real))
   65:          arguments.push_back(real);
   66:       else
   67:          throw "Could not parse argument";
   68:    }
   69:
   70:    // Execute IR
   71:    wcerr << L"Executing…" << flush;
   72:    Interpreter interpreter(ir);
   73:    vector<Value> returns;
   74:    returns = interpreter.evaluateFunction(
   75:       functionSymbol, arguments);
   76:    wcerr << endl;
   77:
   78:    wcout << returns << endl;
   79:    return 0;
   80: }
Donec mol­lis com­modo port­titor. Cras vo­lut­pat pla­cerat nulla in mo­lestie. Etiam hendrerit enim auctor dolor con­sequat eu in­ter­dum orci posuere. Cum so­ciis natoque pena­ti­bus et mag­nis dis par­turi­ent montes, nas­cetur.
Gravida eget.
gravida eget.

Donec mol­lis com­modo port­titor. Cras vo­lut­pat pla­cerat nulla in mo­lestie. Etiam hendrerit enim auctor dolor con­sequat eu in­ter­dum orci posuere. Cum so­ciis natoque pena­ti­bus et mag­nis dis par­turi­ent montes, nas­cetur ri­diculus mus. Sus­pen­disse et eros mauris, ut phare­tra quam. Cras vulpu­tate magna sed nulla la­cinia nec port­titor leo luc­tus. Mauris ut est nec au­gue or­n­are sol­li­citudin id vel mauris. Proin est erat, tin­cidunt eu gravida eget, blan­dit sit amet tortor. Mauris auctor, lorem sed rhon­cus congue, odio sem com­modo dolor, ac sol­li­citudin orci nunc at ipsum. Nul­lam sit amet mauris in mauris iaculis con­sequat. Duis ante nibh, con­sequat vel pla­cerat quis, eges­tas ut magna. Lorem ipsum dolor sit amet, con­sect­etur adip­is­cing elit. Cras turpis magna, ali­quet non pulvinar eget, mat­tis port­titor purus. Pel­lent­esque pulvinar fringilla sus­cipit. Nul­lam malesuada ullam­corper justo at pel­lent­esque. In­teger rutrum vulpu­tate vehicula. Sed tin­cidunt iaculis fer­mentum. Aenean fer­mentum ali­quam semper.

Fusce viverra laoreet quam sit amet ali­quam. In in ante purus, sit amet pre­tium magna. Nulla ut massa in nunc con­di­mentum varius non eget dolor. Duis est nisl, posuere id or­n­are a, sagit­tis laoreet mi. Morbi pulvinar cursus sem­per. Donec con­val­lis luc­tus quam, at phare­tra au­gue luc­tus at. Ali­quam eget pel­lent­esque justo. Donec malesuada sagit­tis ligula, ac hendrerit quam ves­ti­bu­lum im­perdiet. Donec a libero sed ligula vehicula com­modo luc­tus vel nisl. In­teger ac­cum­san, odio sed bibendum la­cinia, lectus nulla phare­tra leo, id tin­cidunt dolor arcu port­titor magna. Vivamus id tel­lus eu­is­mod urna laoreet ali­quet ali­quam a nunc. Proin velit sapien, in­ter­dum a dapibus vitae, con­sequat ut felis. Etiam sodales tortor et lorem phare­tra sem­per. Aenean quis metus eros. Donec tem­pus nisl vel eros ali­quam faucibus. In feu­giat sapien sus­cipit nibh ven­enatis lobortis. Donec gravida, lorem sit amet eu­is­mod tem­por, sapien magna vehicula mauris, sit amet or­n­are felis dui eu tortor. Cur­abitur vel ligula diam.

Make­file

As­ciidoc

Hack: Sim­plify HTML output

header, footer

Hack: Adding a real table of contents

Hack: Use uni­code callouts

Hy­penator

Math­Jax

Per­haps in the fu­ture I could re­place this with Math­Quill or even a preprosessor

De­mands

Tech­nical implementation

Runtime functionality

Todo

Add comment