En JavaScript, un objet n'est qu'un ensemble de propriétés et de méthodes. Dans JSreal, chaque unité, comme A('bas')
ou NP(D('le'),
N('température')), a comme prototype le même objet: JSrealE,
pour ¦JSreal Element. Toutes les unités ont donc les mêmes propriétés possibles et peuvent utiliser les mêmes méthodes.
L'objet JSrealE
n'est jamais utilisé directement par l'usager, qui manipule uniquement les unités qui en héritent.
Les unités de base sont les catégories de mots, N,
V,
D,
A,
Pro,
Adv,
P
et C.
Ces catégories sont énumérées dans une liste JavaScript pour qu'une boucle les intègre toutes comme fonctions globales dans le code, chacune retournant un objet JSrealE
dont une propriété est la catégorie correspondante. Cette automatisation est possible car les fonctions globales ne sont que des propriétés de l'objet JavaScript tout en haut de la hiérachie, appelé window
(la "fenêtre" d'un navigateur web), et JavaScript permet leur manipulation.
Pour créer un mot, il suffit d'utiliser la fonction correspondant à sa catégorie avec son lemme comme argument. Par exemple, pour créer l'adjectif "bas" et l'assigner à la variable low:
Les noms, adjectifs et déterminant peuvent aussi accepte un nombre comme argument au lieu d'un lemme.
D'autres unités sont les groupes de mots, NP,
VP,
AP,
PP,
CP,
J,
S
et SP.
Ils ne sont pas déclarés en série comme les mots car chacun requiert une attention spéciale à sa création et ses méthodes.
Les expressions temporelles se créent avec les fonctions DT
et DTR.
DT
est une unité de base dont l'argument peut être un objet Date,
natif à JavaScript, ou une chaîne de caractères spécifique (date), pour l'analyse de laquelle JSreal utilisera un objet Date.
La date et l'heure d'un objet DT
peuvent aussi être attribuées par des méthodes comme y
(¦year) ou h.
DTR
accepte deux arguments, chacun pouvant être un objet DT
ou un argument que DT
accepterait.Lors de la réalisation, tant DTR
que DT
utilisent d'autres unités JSreal pour construire les expressions temporelles qui les représentent, s'assurant ainsi de respecter la grammaire et la syntaxe des groupes de mots dont elles font partie.
Plusieurs balises HTML peuvent être crées dans JSreal avec des fonctions similaires à celles des mots et des groupes. Chacune de ces fonctions utilise la fonction be base DOM, qui retourne un objet JSrealE
avec quelques propriétés et méthodes spécifiques aux balises. Comme pour les catégories, les fonctions associées aux balises sont déclarées en série à partir d'une liste.
Toutes les manières d'ajouter un constituant à un groupe passent par la méthode add,
lui donnant comme arguments les unités à ajouter. Cette méthode appartient à JSrealE
et est donc exactement la même pour chaque groupe, qui accumule ses constituants pour le moment, ne les classant que lors de la réalisation.
Si la méthode add
est appelée sur un mot comme N
ou A,
sa catégorie est utilisée avec eval
pour créer une instance du groupe de mots qui l'utilise comme noyau (ici, respectivement NP
ou AP)
et y intégrer le mot et son ajout. Ainsi, les deux lignes suivantes sont exactement équivalentes:
Ajouter l'adjectif à l'adverbe aurait échoué, tentant de construire une syntagme adverbial avec la fonction AdvP,
qui n'existe pas présentement; même si elle existait, l'adjectif n'a aucune fonction possible dans un syntagme adverbial et la réalisation aurait donc été imprévisible.
En pratique, l'usager utilise les constituants d'un groupe comme arguments de la fonction associée à ce groupe; JSreal appelle alors add
sur ces arguments. Ainsi, la ligne de code suivante est exactement équivalente aux deux précédentes: