En principe tous les textes générés devraient être en vert...
chat chats
cas cas
château châteaux
cheval chevaux
époux époux
gaz gaz
bregh breghs
calme calme
continuel continuelle
pareil pareille
ancien ancienne
bon bonne
cadet cadette
creux creuse
léger légère
beau belle
aigu aiguë
long longue
moqueur moqueuse
meilleur meilleure
migrateur migratrice
attentif attentive
p 1 place
f 2 placeras
i 3 plaçait
ps 4 plaçâmes
ip 2 place
s 4 placions
# "gars" au féminin pluriel irrégulier
N('gars').g('f').n('p')
filles
# syntagme nominal au pluriel, "beau" avant le nom
NP(D('un'), N('chien'), A('beau'), A('sale')).n('p')
des beaux chiens sales
# complément du nom
NP(D('un'), N('voiture'), A('beau'), PP(P('de'), N('course'))).n('p')
des belles voitures de course
# verbe dans syntagme prépositionnel
NP(D('le'), N('rage'), PP(P('de'), V('vivre')))
la rage de vivre
# syntagme verbal isolé avec complément
VP(V('avoir'), NP(D('son'), N('voyage')))
avoir son voyage
# phrase complète, avec sujet, verbe et complément
S(NP(D('le'),N('chat')),VP(V('manger'),NP(D('le'),N('souris'))))
Le chat mange la souris.
# accord du verbe avec le sujet
S(NP(D('le'),N('chat').n('p')),VP(V('manger'),NP(D('un'),N('souris'))))
Les chats mangent une souris.
# proposition subordonnée
NP(D('le'),N('souris'),SP(C('que'),S(NP(D('le'),N('chat')),VP(V('manger')))))
la souris que le chat mange
# proposition subordonnée par pronom "dont"
NP(D('le'), N('chose'), SP(Pro('dont'), S(Pro('tu'), V('parler'))))
la chose dont tu parles
# phrase avec pronom sujet et complément indirect
S(Pro('je'),VP(V('faire'),N('attention'),PP(P('à'),NP(D('mon'),N('ami').n('p')))))
Je fais attention à mes amis.
# impératif présent, 2e personne
VP(V('passer').f('ip').pe(2),PP(P('par'),NP(D('ce'),N('autoroute')).g('f')))
passe par cette autoroute
# pronom personnel comme complément indirect
S(Pro('je'),VP(V('donner'),NP(D('un'),N('cadeau')),PP(P('à'),Pro('toi'))))
Je te donne un cadeau.
# pronom personnel comme complément direct, phrase exclamative
S(Pro('je'),VP(V('détester'),Pro('elle'))).t('exc')
Je la déteste!
# pronom personnel comme complément direct, adjectif comme attribut
S(Pro('je'),VP(V('trouver'),A('bizarre'),Pro('elle')))
Je la trouve bizarre.
# pronoms personnels comme compléments direct et indirect
S(Pro('je'),VP(V('donner').f('f'),Pro('elle'),PP(P('à'),Pro('elle'))))
Je la lui donnerai.
# adjectifs automatiquement placés avant ou après le nom
NP(D('le'),N('tache'),A('noir'),A('laid'),A('gros'))
la grosse tache noire laide
# compléments du nom emboîtés
NP(D('un'),N('sacramouille'),PP(P('de'),NP(A('beau'),N('projet'),PP(P('de'),N('fou')))))
un sacramouille de beau projet de fou
# pronoms coordonnés par "ou" sujets du verbe
S(CP(C('ou'),Pro('moi'),Pro('toi'),Pro('elle')),V('manger'))
Moi, toi ou elle mange.
# pronoms coordonnés par "et" sujets du verbe
S(CP(C('et'),Pro('moi'),Pro('toi'),Pro('elle')),V('manger'))
Moi, toi et elle mangeons.
# juste "toi" et "moi"
S(CP(C('ou'), Pro('tu'), Pro('je')), VP(V('aller'), Pro('y')))
Toi ou moi y va.
# noms coordonnés par trait d'union
NP(D('le'),CP(C('-'),N('vaisseau'),N('mère'))).n('p')
les vaisseaux-mères
# noms joints par espace
NP(D('un'),A('beau'), J(N('bleu'),N('ciel')))
un beau bleu ciel
# adjectifs coordonnés par trait d'union
NP(D('un'),N('mur'),CP(A('rouge'),C('-'),A('orange')))
un mur rouge-orange
# mots coordonnées par "et/ou"
CP(C('et/ou'),N('glucose'),N('fructose'),N('sucrose'))
glucose, fructose et/ou sucrose
# syntagme coordonné comme complément
S(Pro('il'),VP(V('pleuvoir'),CP(NP(D('un'),N('chat')),C('et'),NP(D('un'),N('chien'))).n('p')))
Il pleut des chats et des chiens.
# positionnement forcé d'adjectifs à travers jonction
NP(N('grammaire'), J(A('gros'),A('gras'),A('grand')).pos('pre'))
grosse grasse grande grammaire
# jonction par deux-points, phrase incomplète
S(J(N('verdict'), N('OK'), C(':')))
Verdict: OK.
# date et heure, pas de jour de la semaine
DT().y(2015).m(10).d(21).h(16).min(29).noDay(true)
le 21 octobre 2015 à 16 h 29
# date seulement, avec jour de la semaine
DT().y(2015).m(10).d(21).h(16).min(29).only('date')
le mercredi 21 octobre 2015
# heure seulement
DT().y(2015).m(10).d(21).h(16).min(29).only('time')
16 h 29
# heures, minutes et secondes
DT().h(2).min(3).s(38)
2 h 3 min 38 s
# dates négatives
DT().y(-480).m(8).d(11).noDay(true)
le 11 août -480
# juste mois et année
DT().y(2000).m(10)
en octobre 2000
# juste année
DT().y(2000)
en 2000
# "demain" comme complément de phrase
S(Adv('demain').pos('end'), Pro('je'), VP(V('continuer').f('f'), NP(D('ce'), N('projet'))))
Je continuerai ce projet demain.
# complément de phrase au début
S(Adv('demain').pos('beg'), Pro('je'), VP(V('continuer').f('f'), NP(D('ce'), N('projet'))))
Demain, je continuerai ce projet.
# élision de "je", liaison de "ma"
S(Pro('je'), VP(V('aimer'), NP(D('mon'), N('auto'))))
J'aime mon auto.
# élision et liaison de "ce" selon qu'il est pronom ou déterminant
S(Pro('ce'), VP(V('être'), NP(D('ce'), N('ordinateur'))))
C'est cet ordinateur.
# "de le" contracté en "du"
S(NP(D('le'),N('homme')),VP(V('descendre'),PP(P('de'),NP(D('le'), N('singe')))))
L'homme descend du singe.
# élision de "le", donc "de le" pas contracté
S(NP(D('le'),N('homme')),VP(V('descendre'),PP(P('de'),NP(D('le'), N('arbre')))))
L'homme descend de l'arbre.
# "demain" naturellement généré
DT(new Date().getTime()+24*60*60*1000).t('nat').only('date')
demain
# intervalle de dates distantes, contraction automatique en "du" et "au"
DTR(DT().y(2014).m(10).d(14), DT().y(2015).m(10).d(17)).noDay(true)
du 14 octobre 2014 au 17 octobre 2015
# intervalle de dates rapprochées
DTR(DT().y(2015).m(10).d(14), DT().y(2015).m(10).d(17)).noDay(true)
du 14 au 17 octobre 2015
# intervalle de dates en termes naturels
DTR(DT(new Date().getTime()-24*60*60*1000), DT(new Date().getTime()+24*60*60*1000)).t('nat').only('date')
d'hier à demain
# liste de dates en termes naturels
DTR(DT(new Date().getTime()), DT(new Date().getTime()+24*60*60*1000)).t('nat').only('date')
aujourd'hui et demain
# intervalle de dates avec juste année
DTR(DT().y(2000), DT(new Date().getTime())).t('nat').only('date')
de 2000 à aujourd'hui
# liste de dates des mêmes mois et année
DTR(DT().y(2000).m(10).d(10),DT().y(2000).m(10).d(11))
les mardi 10 et mercredi 11 octobre 2000
# numéro de téléphone à 7 chiffres dans syntagme
PP(P('à'), NP(D('le'), N(5556426).num('t')))
au 555-6426
# numéro de téléphone à 10 chiffres
N(5145556426).num('t')
514-555-6426
# numéro de téléphone à 11 chiffres
N(18005556426).num('t')
1-800-555-6426
# impératif avec pronom comme complément indirect
S(VP(V('donner'), NP(D('le'), N('récompense')), PP(P('à'),Pro('je')))).t('exc').f('ip').pe(2)
Donne-moi la récompense!
# impératif avec pronoms comme compléments
S(VP(V('donner'), Pro('elle'), PP(P('à'),Pro('je')))).t('exc').f('ip').pe(2)
Donne-la-moi!
# conversion de syntagme nominal en pronom approprié
S(VP(V('donner'), NP(D('le'), N('récompense')).pro(1), PP(P('à'),Pro('je')))).t('exc').f('ip').pe(2)
Donne-la-moi!
# imparfait à partir du radical, points de suspension
S(Pro('il'), VP(V('être').f('i'), NP(D('un'), N('fois')))).a('...')
Il était une fois...
# articles défini et indéfini par méthode, ajout à un syntagme
S(NP(N('hyperbole')).d('d'), VP(V('être'), NP(N('figure'), PP(P('de'), N('style'))).d('i')))
L'hyperbole est une figure de style.
# sujet féminin, attribut féminin invariable
S(NP(N('orange')).d('d'), VP(V('être'), NP(N('couleur')).d('i')))
L'orange est une couleur.
# sujet féminin, attribut masculin invariable
S(NP(N('orange')).d('d'), VP(V('être'), NP(N('fruit')).d('i')))
L'orange est un fruit.
# sujet féminin, attribut masculin variable
S(NP(N('orange')).d('d'), VP(V('être'), NP(N('allié')).d('i')))
L'orange est une alliée.
# accord de l'attribut indésirable
S(NP(N('suspect')).d('d'), VP(V('être'), NP(N('femme')).d('i')))
Le suspect est un homme.
# verbe impersonnel forcé, pas d'accord de l'attribut
S(NP(N('suspect')).d('d'), VP(V('être').imp(1), NP(N('femme')).d('i')))
Le suspect est une femme.
# verbe avec attributs multiples
S(Pro('il'), VP(V('être').f('i').imp(1), NP(N('fois')).d('i'), NP(N('fille'), A('petit')).d('i'))).a('...')
Il était une fois une petite fille...
# .d(): raccourci pour syntagme nominal simple
S(N('voiture').d('dem'),VP(V('dépasser'),N('autre').d('d')))
Cette voiture dépasse l'autre.
# nombre sans modification
S(N(2080218071.45718), VP(V('être'), N('nombre').d('i')))
2080218071.45718 est un nombre.
# écriture décimale française
N(2080218071.45718).num('d')
2 080 218 071,457 18
# écriture en toutes lettres, fraction décimale
N(2080218071.45718).num('l')
deux milliards quatre-vingt millions deux cent dix-huit mille soixante-et-onze et quarante-cinq mille sept cent dix-huit cent-millièmes
# syntagme verbal comme complément de verbe
S(Pro('je'), VP(V('détester'), VP(V('être'), A('coupé'))))
Je déteste être coupé.
# subordonnée comme complément de verbe
S(Pro('je'), VP(V('détester'), SP(C('quand'), S(Pro('on'), VP(V('couper'), Pro('moi'))))))
Je déteste quand on me coupe.
# pronoms "y" et "en" comme compléments de verbe
S(Pro('il'), VP(V('avoir'), Pro('en'), Adv('trop'), Pro('y'))).t('exc')
Il y en a trop!
# syntagme adjectival
AP(Adv('très'), A('fier'))
très fier
# syntagme adjectival complexe
S(Pro('elle'), VP(V('être'), AP(Adv('vraiment'), Adv('très'), A('fier'), PP(P('de'),NP(D('son'),N('travail'))))))
Elle est vraiment très fière de son travail.
# syntagme adjectival avec subordonnée
S(N('voiture').d('dem'),VP(V('être'),AP(Adv('plus'),A('rapide'),SP(Pro('que'), N('autre').d('d')))))
Cette voiture est plus rapide que l'autre.
# syntagme adjectival antéposé comme son adjectif
NP(N('chaperon'), AP(A('joli'), Adv('très')), A('rouge')).d('i')
un très joli chaperon rouge
# ponctuation arbitraire après un mot
CP(C('et'), N('A'), N('B'), N('C').a(','), N('D'))
A, B, C, et D
# adjectifs comme noms par trait "fct" et méthode "addHead"
CP(NP(A('beau').g('f').cap(1).fct('head')).d('d'), NP().d('d').addHead(A('bête').cap(1)).g('f')).add(C('et')).cap(1)
La Belle et la Bête
# .c(): alternative pour coordonnant
CP(N('A'), N('B'), N('C')).c('ou')
A, B ou C
# pronom sujet modifié
S(Pro('moi'), VP(V('aller'), Pro('y')))
J'y vais.
# pronoms sujets coordonnées modifiés
S(CP(Pro('tu'), Pro('je')).c('et'), VP(V('aller'), Pro('y')))
Toi et moi y allons.
# passage de mot à syntagme
V('avoir').add(N('faim'))
avoir faim
# adverbe comme sujet
S(Adv('demain').fct('subj'),VP(V('être'),NP(N('jour'),D('un'),A('autre'))))
Demain est un autre jour.
# adverbe dans groupe nom
VP(V('avoir'),NP(Adv('très'), N('peur')))
avoir très peur
# entourer un mot
A('entouré').en('*')
*entouré*
# parenthèses
J(A('surchargé'), A('overloaded').en('('))
surchargé (overloaded)
# guillemets
N('mot').d('d').addComp(N('sarcasme').en('"'))
le mot « sarcasme »
# citation
S(Pro('ça'), V('dire').add(NP(N('défense'), PP(P('de'), V('passer'))).en('"'))).a('...')
Ça dit « défense de passer »...
# accord à travers balise HTML
NP(D('un'), N('voiture'), I(A('beau'))).n('p')
des <i>belles</i> voitures
# assignation de traits à travers balise HTML
B(N('camion')).n('p').d('i')
des <b>camions</b>
# .tag(): alternative pour balise HTML simple
NP(D('un'), N('voiture'), A('beau').tag('i')).n('p')
des <i>belles</i> voitures
# plusieurs phrases dans un paragraphe, phrase à partir d'une chaîne, phrases interrogatives
P(S('allô').t('int'), S(Pro('qui'), VP(V('être'), Adv('là'))).a('?'))
<p>Allô? Qui est là?</p>
# balise HTML sans fermeture et avec attributs
Img().class('left').src('http://daou.st/JSreal/JSrealIcon.png')
<img class="left" src="http://daou.st/JSreal/JSrealIcon.png">
# balise HTML avec attribut inconnu
Div().attr('show', 1)
<div show="1"></div>
# assignation d'attributs par objet
P().attr({ id:'cont', class:'no-bg', show:1 })
<p id="cont" class="no-bg" show="1"></p>
# coordination de propositions
CP(S(Pro('je'), VP(V('aller'), Pro('y'))), S(Pro('je'), VP(V('exécuter'), N('ordre').n('p').d('d'))), S(Pro('je'), V('revenir'))).c('et')
J'y vais, j'exécute les ordres et je reviens.
# participe passé accordé
V('blanchir').g('f').f('pp')
blanchie
# passé composé, plus-que-parfait, conditionnel passé
CP(S(Pro('je'), V('comprendre').f('pc')), S(Pro('je'), V('entendre').f('pq')), S(Pro('je'), V('devoir').f('cp'))).c(';')
J'ai compris; j'avais entendu; j'aurais dû.
# passé composé à travers coordination de phrases, ajout avant un élément
J(CP(S(Pro('je'), V('venir')), S(Pro('je'), V('voir')), S(Pro('je'), V('vaincre'))).c(',').f('pc').en('"'), N('Jules César').b('— '))
« Je suis venu, j'ai vu, j'ai vaincu. » — Jules César
# balise HTML dans une coordination
CP(C('et'), N('A'), B(N('B')), N('C'), N('D'))
A, <b>B</b>, C et D
# caractère et virgule après un élément d'une coordination
CP(C('et'), N('A'), N('B').a('*'), N('C'), N('D'))
A, B*, C et D
# liste automatique à partir d'éléments joints
J(N('A'), N('B'), N('C')).tag('ol')
<ol><li>A</li><li>B</li><li>C</li></ol>
# mais juxtaposition dans liste n'en prend qu'une ligne
UL(J(N('A'), N('B'), N('C')))
<ul><li>A B C</li></ul>
# complément de phrase au milieu
S(Pro('je'), V('accepter'), A('soussigné').pos('mid'))
Je, soussigné, accepte.
# verbe complément de verbe complément de verbe complément de verbe
S(Pro('il'), VP(V('falloir'), VP(V('savoir'), VP(V('laisser'), V('aller')))))
Il faut savoir laisser aller.
# attribut après passé composé
S(NP(D('ton'), N('moto')), VP(V('être'), A('remisé')), PP(P('pour'), N('hiver').d('d')).pos('end')).f('pc')
Ta moto a été remisée pour l'hiver.
# raccourci pour syntagme nominal à partir d'adjectif
A('dernier').g('f').d('d')
la dernière
# pronom noyau de syntagme nominal
NP(Pro('ce'), SP(Pro('dont'), S(Pro('tu'), V('parler'))))
ce dont tu parles
# trait avec valeur fausse
S(N('NON')).a('')
NON
# phrase coordonnée subordonnée
SP(C('que'), CP(S(Pro('il'), V('pleuvoir').f('s')), Adv('non')).c('ou'))
qu'il pleuve ou non
# majuscule à travers entourage
NP(N('test').en('*')).cap(1)
*Test*
# expression temporelle à partir d'une chaîne
DT('2010-10-21T21:16:29')
le jeudi 21 octobre 2010 à 21 h 16 min 29 s
# NP dans NP par erreur
NP(N('bout').d('d'), A('autre'))
l'autre bout
# raccourci pour subordonnée
S(Pro('tu'), V('vouloir')).sub('où')
où tu veux
# n'importe quoi peut être subordonné
AP(Adv('plus'), A('rapide'), A('autre').d('d').sub('que').n('p'))
plus rapide que les autres
# liste automatique dans UL
UL(N('A'), N('B'), N('C'))
<ul><li>A</li><li>B</li><li>C</li></ul>
# éléments DOM acceptent chaînes
UL('A','B','C')
<ul><li>A</li><li>B</li><li>C</li></ul>
# majuscule automatique à titre HTML
H4(NP(D('un'), N('voiture'), A('rouge'), A('beau')))
<h4>Une belle voiture rouge</h4>
# problème réglé avec les 1
N(1001001001).num('l')
un milliard un million mille un
# nombre adjectif
N('rangée').d('d').add(A(25).num('l'))
la rangée vingt-cinq
# nombre adjectif sans trait 'num'
N('rangée').d('d').add(A(25))
la rangée 25
# nombre déterminant
N('rangée').d(3)
3 rangées
# nombre déterminant modifié par trait du NP
N('rangée').d(3).num('l')
trois rangées
# nombre déterminant 1 s'accorde en genre
N('rangée').d(1).num('l')
une rangée
# nombre déterminant impose pluriel à partir de 2
N('rangée').d(2).num('d')
2 rangées
# mais pas avant
N('rangée').d(1.99).num('d')
1,99 rangée
# aussi dans le négatif
N('rangée').d(-2).num('d')
-2 rangées
# nombre nom n'entraîne pas élision ou liaison
S(N('un').d('d'), V('gagner').f('pc')).t('exc')
Le un a gagné!
# pareil pour nombre en lettres généré par JSreal
S(N(11).d('d').num('l'), V('gagner').f('pc')).t('exc')
Le onze a gagné!
# terminaisons de nombres ordinaux
J(A(24), A(105), A(9), A(1001)).c(',').num('o')
vingt-quatrième, cent cinquième, neuvième, mille unième
# nombre ordinal comme adjectif
N('rangée').d('d').add(A(1).num('o'))
la première rangée
# nombre ordinal complexe
N('conte').d('d').add(A(1001).num('o'))
le mille unième conte
# pas d'élision ou liaison avec nombre ordinal
A(11).num('o').d('d')
le onzième
# pronom avec subordonnée par "que": accord du participe passé avec "avoir"
Pro('celle').add(S(Pro('tu'), V('choisir')).f('pc').sub('que'))
celle que tu as choisie
# accord malgré PP qui suit avec "de"
Pro('celle').add(S(Pro('tu'), V('choisir').add(PP(P('de'), N('emblée')))).f('pc').sub('que'))
celle que tu as choisie d'emblée
# accord malgré verbe à l'infinif qui suit dans PP
Pro('celle').add(S(Pro('tu'), V('choisir').add(PP(P('pour'), V('survivre')))).f('pc').sub('que'))
celle que tu as choisie pour survivre
# mais pas d'accord si verbe à l'infinif suit dans PP avec "de"
Pro('celle').add(S(Pro('tu'), V('choisir').add(PP(P('de'), V('prendre')))).f('pc').sub('que'))
celle que tu as choisi de prendre
# pas d'accord avec subordonnée par "dont", non plus
N('chose').d('d').add(S(Pro('tu'), V('parler')).f('pc').sub('dont'))
la chose dont tu as parlé
# pronom relatif "qui" transmet la personne
S(Pro('ce'), VP(V('être'), NP(Pro('vous'), V('gagner').sub('qui')))).t('exc')
C'est vous qui gagnez!
# aussi personne automatique
N('pierre').n('p').add(V('rouler').sub('qui'))
pierres qui roulent
# préposition acceptée en lieu de PP (ellipse sous-entendue)
S(Pro('je'), V('venir').f('f').add(P('après')))
Je viendrai après.
# participe passé avec avoir: accord avec complément d'objet direct qui le précède
S(Pro('je'), V('attendre').f('fa').add(Pro('elles')))
Je les aurai attendues.
# autre accord avec complément d'objet direct avant verbe
S(Pro('je'), V('rendre').f('f').add(A('spécial'), Pro('elles')))
Je les rendrai spéciales.
# PP subordonné
S(Adv('mieux').fct('subj'), VP(V('valoir'), VP(V('mourir'), A('libre'), PP(P('de'), VP(V('vivre'), N('esclave'))).sub('que'))))
Mieux vaut mourir libre que de vivre esclave.
# nombre en toutes lettres, nouvelle orthographe
N(18071.457).num('ln')
dix-huit-mille-soixante-et-onze et quatre-cent-cinquante-sept millièmes
# ordinal, nouvelle orthographe
A(1200).num('on')
mille-deux-centième
# adjectif suivi de "de"
NP(AP(A('vrai'), P('de')), A('vrai'), A('fou')).g('f').d('i')
une vraie de vraie folle
# pronominalisation de nom
N('fille').pro(1)
elle
# pronominalisation de coordination
CP(Pro('toi'), Pro('moi')).pro(1)
nous
# personne 3 par défaut si verbe a une forme
V('faire').f('f')
fera
# personne 2 par défaut si verbe à l'impératif
V('faire').f('ip')
fais
# raccourci pour déterminant possessif
NP(N('auto')).d('p2')
ton auto
# élision et traits a/b/en
J(NP(D('le'), N('avion')), NP(D('le').a(','), N('avion')), NP(D('le'), N('avion').b('-')), NP(D('le'), N('avion').en('"'))).c('|')
l'avion|le, avion|le -avion|l'« avion »
# flexion de pronom
Pro('il').g('f').n('p')
elles
# raccourci pour PP
Pro('lui').p('de')
de lui
# pas d'élision avec "le" complément d'impératif
VP(V('faire').f('ip'), Pro('le'), N('nouveau').p('à'))
fais-le à nouveau
# verbe: forme composée, pas dans autre groupe
V('aller').f('fa').pe(2).n('p').g('f')
serez allées
# pronom à partir de personne
Pro().pe(1)
je
# "aucune" à partir de 0
N('fois').d(0).num('l')
aucune fois
# balises HTML imbriquées
Div(N('propos').p('à').tag('h2'), Img().class('inline').src('me.png'), P(CP(S(N('nom').d('p1'), VP(V('être'), N('Nicolas Daoust').tag('b'))), S(Pro('je'), VP(V('être'), N('créateur').d('d').add(N('JSreal').tag('a').href('http://daou.st/JSreal').p('de'))))), S(Pro('vous'), VP(V('pouvoir'), VP(V('contacter'), Pro('moi'), N('n@daou.st').tag('a').href('mailto:n@daou.st').d('d').p('à'))))))
<div><h2>À propos</h2><img class="inline" src="me.png"><p>Mon nom est <b>Nicolas Daoust</b> et je suis le créateur de <a href="http://daou.st/JSreal">JSreal</a>. Vous pouvez me contacter au <a href="mailto:n@daou.st">n@daou.st</a>.</p></div>
# adjectif après nom, mais avant complément
N('génération').add(A('automatique').pos('post'), N('texte').p('de'))
génération automatique de texte
# balise a automatique avec attribut href; Email
S(Pro('vous'), VP(V('pouvoir'), V('contacter').add(Pro('moi'), Email('n@JSreal.js').d('d').p('à'))))
Vous pouvez me contacter au <a href="mailto:n@JSreal.js">n@JSreal.js</a>.