Référence de l'API Haxe

L'API publique complète du runtime Loreline.

Vous débutez avec Loreline en Haxe ? Commencez par le guide d'intégration. Cette page est la référence exhaustive.

Cette référence est plus large que les autres. Haxe est le langage dans lequel Loreline est écrit, et toutes les autres cibles en sont compilées : les classes ci-dessous comprennent toute la hiérarchie des nœuds de l'AST et l'état d'exécution de l'interpréteur, que les wrappers des autres langages n'exposent pas.

Vue d'ensemble

TypeMembres
Loreline parse play resume extractTranslations loadLocale translationFormat lastError print update generateTranslationFile insertLocalizationKeys collectHashIds removeLocalizationKeys extractTranslatableEntries hasUntaggedTranslatableStrings
Interpreter new start save restore resume getCharacter getCharacterField setCharacterField getStateField setStateField getTopLevelStateField setTopLevelStateField currentNode currentNodeFilePath translations stringLiteralProcessors resolveBeatByName resolveBeatRefByName resolveBeatRefFromNode
Script body filePath fromJson indentSize new eachExcludingImported iterator
Node id pos type toJson fromJson each new toJson
InterpreterOptions functions strictAccess customCreateFields translations stringLiteralProcessors
ChoiceOption text tags enabled
TextTag closing value offset
DialogueHandler
ChoiceHandler
FinishHandler
FunctionsMap
NodeId toString toInt64 UNDEFINED new fromInt64 fromString fromTwoInt32 section branch block node nextSection nextBranch nextBlock nextNode
Fields lorelineCreate lorelineGet lorelineSet lorelineExists lorelineFields lorelineRemove
RuntimeState scope fields originalFields new clear
RuntimeCharacter new
RuntimeAccess FieldAccess ArrayAccess CharacterAccess FunctionAccess BeatAccess
RuntimeScope id beat node beats state head insertion captured beatByName
RuntimeBeatRef beat stack new beatOf beatNameOf
RuntimeInsertion id origin options stack parentPartialOptions parentNextOptionIndex new
RuntimeError new
EvalNext sync cb new
NodeIdStep SECTION BRANCH BLOCK NODE
NodeIdMap new get set remove exists clear iterator keys keyValueIterator
NodeIdMapKeyVal
Comment content multiline isHash new toJson
AstNode leadingComments trailingComments new eachComment toJson
NExpr new toJson
NStateDecl temporary fields style new get toJson
NObjectField name value new toJson
NCharacterDecl name namePos fields style new get toJson
NBeatParam name namePos defaultValue new toJson
NBeatDecl name body style params new toJson
StringPartType Raw Expr Tag
BlockStyle Plain Braces toString
ConditionStyle Plain Parens toString
AlternativeMode Sequence Cycle Once Pick Shuffle toString
NStringPart partType new toJson
NStringLiteral parts quotes new toJson
NTextStatement content condition conditionStyle conditionPos new toJson
NDialogueStatement character characterPos content condition conditionStyle conditionPos new toJson
NChoiceStatement options style new toJson
NChoiceOption text insertion condition conditionStyle conditionPos body style once new toJson
NBlock body style new toJson
NIfStatement condition conditionStyle thenBranch elseBranch elseLeadingComments elseTrailingComments new toJson
NAlternative mode items style separatorComments new toJson
NCall target args new toJson
NTransition target targetPos targetExpr args new toJson
NInsertion target targetPos targetExpr args new toJson
NBeatCall targetExpr targetPos args new toJson
NFunctionDecl name args code external new toJson
NLiteral value literalType new toJson
LiteralType Number Boolean Null Array Object
NAccess target name new toJson
NAssign target op value new toJson
NArrayAccess target index new toJson
NBinary left op right new toJson
NUnary op operand new toJson
NTernary condition trueExpr falseExpr new toJson
NImportStatement path script new

Loreline

classe

L'API publique principale du runtime Loreline. Donne accès simplement aux fonctionnalités de base pour analyser et exécuter des scripts Loreline.

parse

méthode

public static function parse(input:String, ?filePath:String, ?handleFile:ImportsFileHandler, ?callback:(script:Script)->Void):Null<Script>

Analyse le texte fourni et en crée une instance Script exécutable.

ParamètreTypeDescription
input String Le contenu du script Loreline sous forme de chaîne (format .lor)
filePath String Chemin optionnel du fichier analysé. S'il est fourni, handleFile est requis également.
handleFile ImportsFileHandler Handler de fichiers optionnel pour lire les imports. Si ce handler est asynchrone, parse() renverra null et l'argument callback devra être utilisé
callback (script:Script)->Void S'il est fourni, sera appelé avec le script résultant en argument. Utile surtout quand les imports de fichiers sont lus de façon asynchrone

Retourne Null<Script> Le script analysé, sous forme d'instance AST Script (s'il a été chargé de façon synchrone)

Lève Si le script contient des erreurs de syntaxe ou d'autres problèmes d'analyse

C'est la première étape du travail avec un script Loreline. L'objet Script renvoyé peut ensuite être passé aux méthodes play() ou resume().

JavaScript TypeScript C# GDScript C++ Java PHP Python Lua Haxe

play

méthode

public static function play(script:Script, handleDialogue:DialogueHandler, handleChoice:ChoiceHandler, handleFinish:FinishHandler, ?beatName:String, ?options:InterpreterOptions):Interpreter

Démarre la lecture d'un script Loreline depuis le début ou depuis un beat précis.

ParamètreTypeDescription
script Script Le script analysé (résultat de parse())
handleDialogue DialogueHandler Fonction appelée quand un texte de dialogue doit être affiché
handleChoice ChoiceHandler Fonction appelée quand le joueur doit faire un choix
handleFinish FinishHandler Fonction appelée quand l'exécution du script se termine
beatName String Nom optionnel d'un beat précis par lequel démarrer (par défaut, le premier beat)
options InterpreterOptions Options supplémentaires

Retourne Interpreter L'instance d'interpréteur qui exécute le script

Cette fonction se charge d'initialiser l'interpréteur et de démarrer l'exécution immédiatement. Vous devrez fournir des handlers pour les dialogues, les choix et la fin du script.

JavaScript TypeScript C# GDScript C++ Java PHP Python Lua Haxe

resume

méthode

public static function resume(script:Script, handleDialogue:DialogueHandler, handleChoice:ChoiceHandler, handleFinish:FinishHandler, saveData:SaveData, ?beatName:String, ?options:InterpreterOptions):Interpreter

Reprend un script Loreline précédemment sauvegardé depuis son état enregistré.

ParamètreTypeDescription
script Script Le script analysé (résultat de parse())
handleDialogue DialogueHandler Fonction appelée quand un texte de dialogue doit être affiché
handleChoice ChoiceHandler Fonction appelée quand le joueur doit faire un choix
handleFinish FinishHandler Fonction appelée quand l'exécution du script se termine
saveData SaveData Les données de sauvegarde (typiquement issues de interpreter.save())
beatName String Nom de beat optionnel pour choisir où reprendre
options InterpreterOptions Options optionnelles pour configurer le comportement de l'interpréteur

Retourne Interpreter L'instance d'interpréteur qui exécute le script

Cela permet de continuer une histoire exactement là où elle a été sauvegardée, en restaurant toutes les variables d'état, les choix et la progression du joueur.

JavaScript TypeScript C# GDScript C++ Java PHP Python Lua Haxe

extractTranslations

méthode

public static function extractTranslations(script:Script):Map<String, NStringLiteral>

Extrait les traductions d'un script de traduction analysé.

ParamètreTypeDescription
script Script Le script de traduction analysé (résultat de parse() sur un fichier .XX.lor)

Retourne Map<String, NStringLiteral> Une table de traductions à passer comme InterpreterOptions.translations

À partir d'un fichier de traduction analysé avec parse(), renvoie une table de traductions qui peut être passée comme options.translations à play() ou resume().

JavaScript TypeScript C# GDScript C++ Java PHP Python Lua Haxe

loadLocale

méthode

public static function loadLocale(locale:String, script:Script, ?filePath:String, ?handleFile:ImportsFileHandler, ?callback:(translations:Map<String, NStringLiteral>)->Void):Null<Map<String, NStringLiteral>>

Charge les traductions d'une langue donnée, en parcourant tout l'arbre d'imports du script.

ParamètreTypeDescription
locale String Le code de langue (par exemple "fr")
script Script Le script source analysé (il doit avoir été analysé avec un chemin de fichier, ou filePath doit être fourni)
filePath String Emplacement de remplacement optionnel où chercher les fichiers de traduction (par défaut script.filePath). Peut être un chemin de fichier .lor/.lor.txt ou un dossier.
handleFile ImportsFileHandler Handler de fichiers utilisé pour lire les fichiers de traduction
callback (translations:Map<String, NStringLiteral>)->Void Appelé avec la table de traductions fusionnée. Requis si handleFile est asynchrone.

Retourne Null<Map<String, NStringLiteral>> La table de traductions fusionnée (de façon synchrone, quand handleFile est synchrone), ou null si un fichier de traduction existe mais est invalide. Les fichiers de traduction absents restent ignorés silencieusement. lastError() n'est renseignée que lorsqu'un fichier est présent mais illisible (.lor cassé, .po/.xliff/.csv malformé, etc.).

Pour chaque fichier concerné par le script (racine + imports transitifs), le fichier de traduction correspondant est recherché en insérant .<locale> avant l'extension (par exemple characters.lor -> characters.fr.lor). Les fichiers de traduction absents sont ignorés silencieusement.

Chaque clé de traduction est enregistrée sous deux formes :

  • une clé globale <id> (la première occurrence l'emporte, priorité au fichier racine)
  • une clé locale <chemin-source-relatif>#<id> (toujours renseignée par fichier, permet la surcharge)

L'interpréteur privilégie la clé locale lors de la recherche d'une traduction.

JavaScript TypeScript C# GDScript C++ Java PHP Python Lua Haxe

translationFormat

méthode

public static function translationFormat(name:String, enabled:Bool):Void

Active ou désactive la prise en charge d'un format de fichier de traduction alternatif.

ParamètreTypeDescription
name String L'identifiant de format (voir ci-dessus)
enabled Bool True pour activer le format, false pour le désactiver

Retourne Void

Par défaut, loadLocale n'essaie que les fichiers .<locale>.lor. Appelez cette méthode pour activer d'autres formats. Noms connus :

  • "po" : GNU gettext PO (.po)
  • "xliff" : XLIFF 1.2 / 2.x (.xliff, .xlf)
  • "csv" : CSV / TSV (.csv, .tsv)

Les noms inconnus sont acceptés silencieusement (compatibilité avec de futurs formats).

Un fichier malformé dans un format activé (XML cassé dans un .xliff, .po avec une chaîne entre guillemets non terminée) remonte sous forme de loreline.Error depuis loadLocale, à attraper par try/catch en mode synchrone, ou via Loreline.lastError() après un callback déclenché avec null en mode asynchrone.

JavaScript TypeScript C# GDScript C++ Java PHP Python Lua Haxe

lastError

méthode

public static function lastError():Null<Error>

Renvoie l'erreur du dernier appel échoué à parse() ou loadLocale(), ou null en cas de succès.

Retourne Null<Error>

En mode asynchrone (avec callback), le callback se déclenche avec null en cas d'échec et cette méthode indique ce qui n'a pas fonctionné. En mode synchrone, l'appel lève une exception, et cette valeur porte la même erreur pour pouvoir être consultée après le catch.

Pas thread-safe : à lire immédiatement après le retour de l'appel.

JavaScript TypeScript C# C++ Java PHP Python Lua Haxe

print

méthode

public static function print(script:Script, ?indent:String, ?newline:String):String

Régénère le code source Loreline à partir d'un script analysé.

ParamètreTypeDescription
script Script Le script analysé (résultat de parse())
indent String La chaîne d'indentation à utiliser (par défaut, deux espaces)
newline String La chaîne de saut de ligne à utiliser (par défaut "\n")

Retourne String Le code source produit, sous forme de chaîne

JavaScript TypeScript C# GDScript C++ Java PHP Python Lua Haxe

update

méthode

public static function update(delta:Float):Void

Fait avancer les timers wait() en attente. À appeler depuis votre boucle de jeu à chaque frame. Le premier appel active le mode différé non bloquant pour wait() sur les cibles système ; avant cet appel, wait() retombe sur un Sys.sleep() bloquant, ce qui convient aux outils en ligne de commande.

ParamètreTypeDescription
delta Float Temps écoulé depuis la frame précédente, en secondes

Retourne Void

C# C++ Java PHP Python Lua Haxe

generateTranslationFile

méthode

public static function generateTranslationFile(script:Script, ?existing:Map<String, NStringLiteral>, ?format:String, ?locale:String):String

Génère le corps d'un fichier de traduction pour le script source donné.

ParamètreTypeDescription
script Script Le script source analysé
existing Map<String, NStringLiteral> (optionnel) Traductions existantes à préserver lors de la fusion
format String
locale String

Retourne String Le corps du fichier de traduction, sous forme de chaîne, prêt à être écrit sur disque

Chaque chaîne traduisible de la source qui porte un marqueur #id devient une entrée de la sortie. Si existing est fourni (typiquement le résultat de extractTranslations sur un fichier de traduction déjà enregistré), les entrées déjà remplies y sont préservées telles quelles ; sinon, chaque entrée est amorcée avec le texte source.

Équivalent de la commande loreline translate ... --lang xx en ligne de commande.

insertLocalizationKeys

méthode

public static function insertLocalizationKeys(content:String, script:Script, ?includeImports:Bool = true, ?reservedIds:Map<String, Bool>):String

Insère un marqueur #id après chaque chaîne traduisible de content qui n'en a pas déjà un. script doit être l'AST analysé depuis ce même content. Renvoie le contenu réécrit.

ParamètreTypeDescription
content String
script Script
includeImports Bool
reservedIds Map<String, Bool>

Retourne String

Quand includeImports vaut false, les scripts importés sont ignorés : leurs positions en octets se rapportent au contenu d'autres fichiers et corrompraient content. Un outil qui parcourt les imports lui-même doit passer false.

Quand reservedIds est fourni, il sert (et est modifié) d'ensemble partagé des identifiants déjà pris entre les appels. Utile pour coordonner la génération d'identifiants sur plusieurs fichiers, afin que les identifiants automatiques du fichier B évitent tous ceux du fichier A. Les identifiants existants issus des commentaires de hachage de ce fichier y sont ajoutés, tout comme ceux nouvellement générés.

Équivalent de l'option --auto-ids de la commande loreline translate.

collectHashIds

méthode

public static function collectHashIds(content:String, ?out:Map<String, Bool>):Map<String, Bool>

Analyse lexicale seule de content, à la recherche de tous les identifiants de commentaire de hachage (#xxxx). Peu coûteux comparé à une analyse complète. Lance le lexer sur le texte et en extrait chaque charge utile CommentHash. À utiliser pour construire des registres d'identifiants réservés à l'échelle d'un projet.

ParamètreTypeDescription
content String
out Map<String, Bool>

Retourne Map<String, Bool>

Remplit et renvoie out (ou une table neuve quand out vaut null).

removeLocalizationKeys

méthode

public static function removeLocalizationKeys(content:String, script:Script):String

Retire tous les marqueurs #id produits par insertLocalizationKeys (ou écrits à la main). L'opération inverse. Renvoie le contenu réécrit. Équivalent de l'option --clear de la commande loreline translate.

ParamètreTypeDescription
content String
script Script

Retourne String

extractTranslatableEntries

méthode

public static function extractTranslatableEntries(script:Script):Array<{ str:NStringLiteral, id:String }>

Renvoie chaque chaîne traduisible de script marquée d'un #id, associée à son identifiant. Les chaînes SANS marqueur #id sont écartées. Utilisez hasUntaggedTranslatableStrings pour les détecter.

ParamètreTypeDescription
script Script

Retourne Array<{ str:NStringLiteral, id:String }>

hasUntaggedTranslatableStrings

méthode

public static function hasUntaggedTranslatableStrings(script:Script):Bool

Renvoie true si script contient au moins une chaîne traduisible (instruction de texte, dialogue ou option de choix) sans commentaire de hachage #id. Sans effet de bord, purement une inspection de l'AST. Utilisé par l'outillage pour décider s'il faut proposer « ajouter des tags ? » avant de générer les fichiers de traduction.

ParamètreTypeDescription
script Script

Retourne Bool

Interpreter

classe

Classe principale d'interprétation des scripts Loreline. Cette classe exécute un script Loreline analysé, gère l'état d'exécution et dialogue avec l'application hôte via des fonctions de handler.

new

constructeur

public function new(script:Script, handleDialogue:DialogueHandler, handleChoice:ChoiceHandler, handleFinish:FinishHandler, ?options:InterpreterOptions)

Crée un nouvel interpréteur de script Loreline.

ParamètreTypeDescription
script Script Le script analysé à exécuter
handleDialogue DialogueHandler Fonction à appeler pour afficher un texte de dialogue
handleChoice ChoiceHandler Fonction à appeler pour présenter des choix
handleFinish FinishHandler Fonction à appeler quand l'exécution se termine
options InterpreterOptions Options supplémentaires

JavaScript TypeScript C# Java Python Haxe

start

méthode

public function start(?beatName:String):Void

Démarre l'exécution du script depuis le début ou depuis un beat précis.

ParamètreTypeDescription
beatName String Nom optionnel du beat par lequel démarrer. Si null, l'exécution démarre au premier beat, ou au beat nommé "_" s'il existe.

Retourne Void

Lève RuntimeError Si le beat indiqué n'existe pas, ou si aucun beat n'est trouvé dans le script

JavaScript TypeScript C# GDScript C++ Java PHP Python Lua Haxe

save

méthode

public function save():SaveData

Sauvegarde l'état courant de l'interpréteur. Cela comprend toutes les variables d'état, l'état des personnages et la pile d'exécution, ce qui permet de reprendre l'exécution plus tard exactement au même point.

Retourne SaveData Un objet SaveData contenant l'état sérialisé

JavaScript TypeScript C# GDScript C++ Java PHP Python Lua Haxe

restore

méthode

public function restore(saveData:SaveData):Void

Restaure l'état de l'interpréteur depuis un objet SaveData. Cela permet de reprendre l'exécution depuis un état précédemment sauvegardé.

ParamètreTypeDescription
saveData SaveData L'objet SaveData contenant l'état sérialisé

Retourne Void

Lève RuntimeError Si la version des données de sauvegarde est incompatible

JavaScript TypeScript C# GDScript C++ Java PHP Python Lua Haxe

resume

méthode

public function resume():Void

Reprend l'exécution après la restauration de l'état. À appeler après restore() pour poursuivre l'exécution.

Retourne Void

JavaScript TypeScript C# Java PHP Python Lua Haxe

getCharacter

méthode

public function getCharacter(name:String):Any

Récupère un personnage par son nom.

ParamètreTypeDescription
name String Le nom du personnage à récupérer

Retourne Any Les champs du personnage, ou null si le personnage n'existe pas

JavaScript TypeScript C# Java PHP Python Lua Haxe

getCharacterField

méthode

public function getCharacterField(character:String, name:String):Any

Récupère un champ précis d'un personnage.

ParamètreTypeDescription
character String Le nom du personnage
name String Le nom du champ à lire

Retourne Any La valeur du champ, ou null si le personnage ou le champ n'existe pas

JavaScript TypeScript C# GDScript C++ Java PHP Python Lua Haxe

setCharacterField

méthode

public function setCharacterField(character:String, name:String, value:Any):Void

Écrit un champ précis sur un personnage.

ParamètreTypeDescription
character String Le nom du personnage
name String Le nom du champ à écrire
value Any La valeur à écrire

Retourne Void

JavaScript TypeScript GDScript C++ Java PHP Python Lua Haxe

getStateField

méthode

public function getStateField(name:String):Any

Lit un champ d'état par son nom, en résolvant depuis la portée courante vers l'extérieur.

ParamètreTypeDescription
name String Le nom du champ à lire

Retourne Any La valeur du champ, ou null si elle est introuvable

JavaScript TypeScript C# GDScript C++ Java PHP Python Lua Haxe

setStateField

méthode

public function setStateField(name:String, value:Any):Void

Écrit un champ d'état par son nom, en résolvant depuis la portée courante vers l'extérieur. Parcourt la pile d'exécution de la portée la plus interne vers la plus externe pour trouver le champ, puis retombe sur l'état de premier niveau s'il est introuvable.

ParamètreTypeDescription
name String Le nom du champ à écrire
value Any La valeur à écrire

Retourne Void

JavaScript TypeScript C# GDScript C++ Java PHP Python Lua Haxe

getTopLevelStateField

méthode

public function getTopLevelStateField(name:String):Any

Lit directement un champ de l'état de premier niveau.

ParamètreTypeDescription
name String Le nom du champ à lire

Retourne Any La valeur du champ, ou null si le champ n'existe pas

JavaScript TypeScript C# GDScript C++ Java PHP Python Lua Haxe

setTopLevelStateField

méthode

public function setTopLevelStateField(name:String, value:Any):Void

Écrit directement un champ sur l'état de premier niveau.

ParamètreTypeDescription
name String Le nom du champ à écrire
value Any La valeur à écrire

Retourne Void

JavaScript TypeScript C# GDScript C++ Java PHP Python Lua Haxe

currentNode

méthode

public function currentNode():AstNode

Renvoie le nœud en cours d'exécution. Pendant un callback de dialogue, renvoie le nœud de l'instruction de dialogue. Pendant un callback de choix, renvoie le nœud de l'instruction de choix.

Retourne AstNode Le nœud AST courant, ou null si aucun nœud n'est en cours d'exécution

JavaScript TypeScript C# GDScript C++ Java PHP Python Lua Haxe

currentNodeFilePath

méthode

public function currentNodeFilePath(rootPath:String):String

Renvoie le chemin du fichier contenant le nœud courant. Utilise le Lens pour remonter les instructions d'import et résoudre le chemin relativement au chemin racine fourni.

ParamètreTypeDescription
rootPath String Le chemin du fichier du script racine

Retourne String Le chemin du fichier contenant le nœud courant, ou rootPath si l'on se trouve dans le fichier racine

JavaScript TypeScript Haxe

translations

propriété

public var translations:Null<Map<String, NStringLiteral>>

Table de traductions optionnelle (clé de localisation -> littéral de chaîne traduit). Quand elle est renseignée, evaluateString() substitue au texte marqué sa version traduite.

Retourne Null<Map<String, NStringLiteral>>

stringLiteralProcessors

propriété

public var stringLiteralProcessors:Array<(str:NStringLiteral)->NStringLiteral> = []

Processeurs enfichables qui transforment les littéraux de chaîne avant évaluation. Chaque processeur reçoit un NStringLiteral et renvoie un NStringLiteral, éventuellement transformé.

Retourne Array<(str:NStringLiteral)->NStringLiteral>

resolveBeatByName

méthode

public function resolveBeatByName(name:String, ?scopeLevel:Int = -1):Null<NBeatDecl>

Résout un beat par son nom selon le parcours des portées à l'EXÉCUTION (d'abord les beats imbriqués enregistrés, puis les beats de premier niveau). Utilisé uniquement en repli dans les contextes sans nœud (code de fonction, utilitaires du moteur) ; la résolution ancrée sur un nœud passe par resolveBeatRefFromNode (lexicale).

ParamètreTypeDescription
name String
scopeLevel Int

Retourne Null<NBeatDecl>

resolveBeatRefByName

méthode

public function resolveBeatRefByName(name:String):Null<RuntimeBeatRef>

Résout un beat par son nom comme resolveBeatByName, mais construit aussi la chaîne de portées à capturer pour une référence de beat : le chemin de résolution depuis la racine jusqu'à la portée déclarante incluse (vide pour les beats de premier niveau). Sert à créer des valeurs RuntimeBeatRef.

ParamètreTypeDescription
name String

Retourne Null<RuntimeBeatRef>

resolveBeatRefFromNode

méthode

public function resolveBeatRefFromNode(name:String, node:Node):Null<RuntimeBeatRef>

Résout un beat par son nom depuis la position LEXICALE du nœud donné, avec la même résolution que l'éditeur (Lens) : du beat englobant le plus interne vers l'extérieur, sans dépendre de l'ordre, les beats imbriqués masquant ceux de l'extérieur et de premier niveau. Quand la portée déclarante du beat résolu est vivante sur la pile, la référence renvoyée capture cette chaîne de portées (comme le font les références de beat), de sorte que le beat conserve son contexte lexical à l'invocation.

ParamètreTypeDescription
name String Le nom du beat à résoudre
node Node Le nœud servant d'ancrage lexical (null dans les contextes sans nœud)

Retourne Null<RuntimeBeatRef>

Ne retombe sur le parcours des portées à l'exécution que lorsqu'aucun nœud n'est disponible (code de fonction et utilitaires du moteur).

Script

classe

Représente le nœud racine de l'AST d'un script Loreline.

body

propriété

public var body:Array<AstNode>

Tableau des déclarations de premier niveau du script.

Retourne Array<AstNode>

JavaScript TypeScript Haxe

filePath

propriété

public var filePath:String = null

Le chemin du fichier depuis lequel ce script a été analysé. Peut être null si le script a été analysé sans chemin de fichier.

Retourne String

JavaScript TypeScript Haxe

fromJson

méthode

public static function fromJson(json:Dynamic):Script

Reconstruit un Script depuis sa représentation JSON.

ParamètreTypeDescription
json Dynamic L'objet JSON (tel que renvoyé par script.toJson())

Retourne Script Le Script reconstruit

JavaScript TypeScript C# GDScript C++ Java PHP Python Lua Haxe

indentSize

propriété

public var indentSize:Int = 2

La taille d'indentation détectée dans la source (par exemple 2 ou 4 espaces).

Retourne Int

new

constructeur

public function new(id:NodeId, pos:Position, body:Array<AstNode>)

Crée un nouveau nœud racine de script.

ParamètreTypeDescription
id NodeId L'identifiant de nœud de ce script
pos Position Position dans la source où ce script commence
body Array<AstNode> Tableau des déclarations de premier niveau

eachExcludingImported

méthode

public function eachExcludingImported(handleNode:(node:Node, parent:Node)->Void):Void
ParamètreTypeDescription
handleNode (node:Node, parent:Node)->Void

Retourne Void

iterator

méthode

public function iterator():ScriptBodyIterator

Retourne ScriptBodyIterator

Node

classe

Classe de base de tous les nœuds de l'AST. Contient les informations de position et la conversion JSON de base.

id

propriété

public var id:NodeId = NodeId.UNDEFINED

Un identifiant unique pour ce nœud au sein de l'AST, qui permet de le distinguer des autres nœuds du script.

Retourne NodeId

JavaScript TypeScript C# Java Haxe

pos

propriété

public var pos:Position

Position dans le code source où ce nœud apparaît.

Retourne Position

JavaScript TypeScript Haxe

type

méthode

public function type():String

Renvoie le type de ce nœud.

Retourne String Représentation textuelle du type de nœud

JavaScript TypeScript C# C++ Java PHP Python Lua Haxe

toJson

méthode

public override function toJson():Dynamic

Convertit le script en représentation JSON.

Retourne Dynamic Objet dynamique contenant toutes les données du script

JavaScript TypeScript C# GDScript C++ Java PHP Python Lua Haxe

fromJson

méthode

public static function fromJson(json:Dynamic):Node

Reconstruit un nœud d'AST depuis sa représentation JSON.

ParamètreTypeDescription
json Dynamic L'objet JSON (tel que renvoyé par node.toJson())

Retourne Node Le Node reconstruit

JavaScript TypeScript C# Java PHP Python Lua Haxe

each

méthode

public function each(handleNode:(node:Node, parent:Node)->Void):Void

Parcourt tous les nœuds enfants de ce nœud.

ParamètreTypeDescription
handleNode (node:Node, parent:Node)->Void Fonction à appeler pour chaque nœud enfant

Retourne Void

JavaScript TypeScript Haxe

new

constructeur

public function new(id:NodeId, pos:Position)

Crée un nouveau nœud d'AST.

ParamètreTypeDescription
id NodeId
pos Position Position dans la source où ce nœud apparaît

toJson

méthode

public function toJson():Dynamic

Convertit le nœud en représentation JSON.

Retourne Dynamic Objet dynamique contenant le type et la position du nœud

InterpreterOptions

classe

Options de configuration du comportement de l'interpréteur Loreline

functions

propriété

public var functions:FunctionsMap = null

Table optionnelle de fonctions supplémentaires à rendre disponibles au script

Retourne FunctionsMap

JavaScript TypeScript C# GDScript C++ Java Haxe

strictAccess

propriété

public var strictAccess:Bool = false

Indique si l'accès est strict ou non. Si true, lire ou écrire une variable non définie lève une erreur.

Retourne Bool

JavaScript TypeScript C# GDScript C++ Java Haxe

customCreateFields

propriété

public var customCreateFields:(interpreter:Interpreter, type:String, node:Node)->Any = null

Un instanciateur personnalisé pour créer les objets de champs.

Retourne (interpreter:Interpreter, type:String, node:Node)->Any

JavaScript TypeScript C# Java Haxe

translations

propriété

public var translations:Map<String, NStringLiteral> = null

Table de traductions optionnelle (clé de localisation -> littéral de chaîne traduit). Construite à partir d'un fichier de traduction analysé avec AstUtils.extractTranslations().

Retourne Map<String, NStringLiteral>

JavaScript TypeScript C# GDScript C++ Java Haxe

stringLiteralProcessors

propriété

public var stringLiteralProcessors:Array<(str:NStringLiteral)->NStringLiteral> = null

Processeurs de littéraux de chaîne personnalisés, optionnels, ajoutés à côté du processeur intégré du pipe de pluriel. Chaque processeur reçoit un NStringLiteral et renvoie un NStringLiteral (éventuellement transformé).

Retourne Array<(str:NStringLiteral)->NStringLiteral>

ChoiceOption

classe

Représente une option de choix présentée à l'utilisateur.

text

propriété

public var text:String

Le texte de l'option de choix.

Retourne String

JavaScript TypeScript C# C++ Java PHP Python Haxe

tags

propriété

public var tags:Array<TextTag>

Les tags éventuellement associés au texte du choix.

Retourne Array<TextTag>

JavaScript TypeScript C# C++ Java PHP Python Haxe

enabled

propriété

public var enabled:Bool

Indique si cette option de choix est actuellement activée.

Retourne Bool

JavaScript TypeScript C# C++ Java PHP Python Haxe

TextTag

classe

Représente un tag dans un contenu textuel, utilisable pour la mise en forme ou à d'autres fins.

closing

propriété

public var closing:Bool

Indique s'il s'agit d'un tag fermant.

Retourne Bool

JavaScript TypeScript C# C++ Java PHP Python Haxe

value

propriété

public var value:String

La valeur ou le nom du tag.

Retourne String

JavaScript TypeScript C# C++ Java PHP Python Haxe

offset

propriété

public var offset:Int

La position dans le texte où ce tag apparaît.

Retourne Int

JavaScript TypeScript C# C++ Java PHP Python Haxe

DialogueHandler

alias de type

typedef DialogueHandler = (interpreter:Interpreter, character:String, text:String, tags:Array<TextTag>, callback:()->Void)->Void

Type de handler pour la sortie de texte avec callback. Appelé quand le script doit afficher du texte à l'utilisateur.

ChoiceHandler

alias de type

typedef ChoiceHandler = (interpreter:Interpreter, options:Array<ChoiceOption>, callback:(index:Int)->Void)->Void

Type de handler pour la présentation des choix avec callback. Appelé quand le script doit présenter des choix à l'utilisateur.

FinishHandler

alias de type

typedef FinishHandler = (interpreter:Interpreter)->Void

Type de handler appelé quand l'exécution se termine.

FunctionsMap

alias de type

typedef FunctionsMap = Map<String, Any>

Table associant des noms de fonctions à leur implémentation

NodeId

classe

abstract NodeId(Int64)

Représente un identifiant unique de nœud au sein de l'AST. Utilise un système d'identifiants structuré en section, branche, bloc et nœud.

toString

méthode

public function toString():String

Convertit le NodeId en représentation textuelle.

Retourne String Chaîne au format "section.branch.block.node"

JavaScript TypeScript C# Haxe

toInt64

méthode

public inline function toInt64():Int64

Convertit le NodeId en sa représentation Int64.

Retourne Int64 La valeur Int64 de ce NodeId

JavaScript TypeScript Haxe

UNDEFINED

propriété

public static final UNDEFINED:NodeId = new NodeId(0, 0, 0, 0)

Retourne NodeId

new

constructeur

public function new(section:Int, branch:Int, block:Int, node:Int)
ParamètreTypeDescription
section Int
branch Int
block Int
node Int

fromInt64

méthode

public static function fromInt64(value:Int64):NodeId
ParamètreTypeDescription
value Int64

Retourne NodeId

fromString

méthode

public static function fromString(str:String):NodeId
ParamètreTypeDescription
str String

Retourne NodeId

fromTwoInt32

méthode

public static function fromTwoInt32(high:Int, low:Int):NodeId
ParamètreTypeDescription
high Int
low Int

Retourne NodeId

section

propriété

public var section(get, set):Int

Retourne Int

branch

propriété

public var branch(get, set):Int

Retourne Int

block

propriété

public var block(get, set):Int

Retourne Int

node

propriété

public var node(get, set):Int

Retourne Int

nextSection

méthode

public function nextSection():NodeId

Retourne NodeId

nextBranch

méthode

public function nextBranch():NodeId

Retourne NodeId

nextBlock

méthode

public function nextBlock():NodeId

Retourne NodeId

nextNode

méthode

public function nextNode():NodeId

Retourne NodeId

Fields

interface

Interface de base pour contenir des valeurs loreline. Cette interface permet de relier les champs d'objets loreline à des objets propres au jeu.

lorelineCreate

méthode

function lorelineCreate(interpreter:Interpreter):Void

Appelé quand l'objet a été créé depuis un interpréteur

ParamètreTypeDescription
interpreter Interpreter

Retourne Void

JavaScript TypeScript C# Haxe

lorelineGet

méthode

function lorelineGet(interpreter:Interpreter, key:String):Any

Lit la valeur associée à la clé de champ donnée

ParamètreTypeDescription
interpreter Interpreter
key String

Retourne Any

JavaScript TypeScript C# Haxe

lorelineSet

méthode

function lorelineSet(interpreter:Interpreter, key:String, value:Any):Void

Écrit la valeur associée à la clé de champ donnée

ParamètreTypeDescription
interpreter Interpreter
key String
value Any

Retourne Void

JavaScript TypeScript C# Haxe

lorelineExists

méthode

function lorelineExists(interpreter:Interpreter, key:String):Bool

Vérifie si une valeur existe pour la clé donnée

ParamètreTypeDescription
interpreter Interpreter
key String

Retourne Bool

JavaScript TypeScript C# Haxe

lorelineFields

méthode

function lorelineFields(interpreter:Interpreter):Array<String>

Récupère tous les champs de cet objet

ParamètreTypeDescription
interpreter Interpreter

Retourne Array<String>

JavaScript TypeScript C# Haxe

lorelineRemove

méthode

function lorelineRemove(interpreter:Interpreter, key:String):Bool

Supprime le champ associé à la clé donnée

ParamètreTypeDescription
interpreter Interpreter L'instance d'interpréteur
key String La clé du champ à supprimer

Retourne Bool True si la clé a été trouvée et supprimée, false sinon

C# Haxe

RuntimeState

classe

Un état pendant l'exécution d'un script loreline. Les états contiennent des valeurs de champs qu'on peut lire et modifier pendant l'exécution.

scope

propriété

public var scope:Int = -1

Si la valeur est > 0, cet état est temporaire et lié à une portée. Chaque fois qu'on entre dans un nouveau nœud de bloc, on entre dans une nouvelle portée identifiée par un entier unique. En quittant cette portée, les états temporaires associés sont détruits.

Retourne Int

fields

propriété

public var fields(default, null):Any

Les champs de cet état. Contient les données réellement stockées.

Retourne Any

originalFields

propriété

public var originalFields(default, null):Any

Les valeurs d'origine des champs, telles que déclarées initialement dans le script, tant qu'elles ne dépendent pas d'autres valeurs d'état. Servent de point de comparaison à la sérialisation pour éviter d'enregistrer des valeurs inchangées.

Retourne Any

new

constructeur

public function new(interpreter:Interpreter, node:Node, fields:Any, originalFields:Any)

Crée un nouvel état d'exécution avec des valeurs de champs initiales optionnelles.

ParamètreTypeDescription
interpreter Interpreter
node Node
fields Any Valeurs initiales des champs, ou null pour créer des champs vides
originalFields Any Valeurs d'origine des champs pour la comparaison, ou null pour créer des champs d'origine vides

clear

méthode

public function clear(interpreter:Interpreter, node:Node):Void

Vide tous les champs de cet état.

ParamètreTypeDescription
interpreter Interpreter
node Node

Retourne Void

RuntimeCharacter

classe

Variante d'état d'exécution réservée aux personnages. Les personnages sont des entités particulières des scripts Loreline : ils peuvent avoir leurs propres propriétés et être désignés dans les instructions de dialogue.

new

constructeur

public function new(interpreter:Interpreter, node:AstNode, fields:Any, originalFields:Any)

Crée un nouvel état d'exécution de personnage avec des valeurs de champs initiales optionnelles.

ParamètreTypeDescription
interpreter Interpreter
node AstNode
fields Any
originalFields Any

RuntimeAccess

enum

Représente les différentes manières d'accéder aux valeurs d'exécution d'un script Loreline. Utilisé en interne par l'interpréteur pour résoudre les accès aux variables, aux tableaux, aux personnages et les appels de fonctions.

FieldAccess

constante

FieldAccess(pos:Position, obj:Any, name:String)

Représente l'accès à un champ d'un objet.

ParamètreTypeDescription
pos Position Position dans le code source où cet accès a lieu
obj Any L'objet auquel on accède
name String Le nom du champ auquel accéder

ArrayAccess

constante

ArrayAccess(pos:Position, array:Any, index:Int)

Représente l'accès à un élément de tableau par son index.

ParamètreTypeDescription
pos Position Position dans le code source où cet accès a lieu
array Any Le tableau auquel on accède
index Int L'index dans le tableau

CharacterAccess

constante

CharacterAccess(pos:Position, name:String)

Représente l'accès à un personnage par son nom.

ParamètreTypeDescription
pos Position Position dans le code source où cet accès a lieu
name String Le nom du personnage auquel accéder

FunctionAccess

constante

FunctionAccess(pos:Position, name:String)

Représente l'accès à une fonction intégrée ou définie par l'utilisateur.

ParamètreTypeDescription
pos Position Position dans le code source où cet accès a lieu
name String Le nom de la fonction à laquelle accéder

BeatAccess

constante

BeatAccess(pos:Position, ref:RuntimeBeatRef)

Représente une référence de beat résolue par son nom.

ParamètreTypeDescription
pos Position Position dans le code source où cet accès a lieu
ref RuntimeBeatRef

RuntimeScope

classe

Représente une portée dans la pile d'exécution d'un script Loreline. Chaque entrée dans un nouveau nœud de bloc ouvre une nouvelle portée, identifiée par un entier unique. À la sortie de cette portée, les états temporaires qui lui sont associés sont détruits.

id

propriété

public var id:Int = -1

L'identifiant de la portée, un entier unique dans la pile.

Retourne Int

beat

propriété

public var beat:NBeatDecl

Le beat parent où se trouve cette portée. Peut être un beat de premier niveau ou un beat imbriqué.

Retourne NBeatDecl

node

propriété

public var node:AstNode

Le nœud auquel cette portée est attachée.

Retourne AstNode

beats

propriété

public var beats:Array<NBeatDecl> = null

Les déclarations de beats imbriqués, s'il y en a, trouvées dans cette portée.

Retourne Array<NBeatDecl>

state

propriété

public var state:RuntimeState = null

L'état temporaire associé à cette portée, s'il y en a un.

Retourne RuntimeState

head

propriété

public var head:AstNode = null

Le cas échéant, le nœud où se trouve la « tête de lecture » de cette portée. Sert à suivre la position d'exécution courante dans la portée.

Retourne AstNode

insertion

propriété

public var insertion:RuntimeInsertion = null

Si cette portée a été créée depuis une insertion, les données d'exécution de cette insertion.

Retourne RuntimeInsertion

captured

propriété

public var captured:Array<RuntimeScope> = null

Si cette portée exécute un beat invoqué par une référence de beat, la chaîne de portées capturée à la création de la référence (fermeture). La résolution des noms dans cette portée parcourt cette chaîne au lieu des portées situées en dessous dans la pile, puis saute au premier niveau.

Retourne Array<RuntimeScope>

beatByName

méthode

public function beatByName(name:String):Null<NBeatDecl>

Trouve dans cette portée une déclaration de beat imbriqué portant le nom donné, s'il y en a une.

ParamètreTypeDescription
name String Le nom du beat à trouver

Retourne Null<NBeatDecl> La déclaration de beat si elle est trouvée, null sinon

RuntimeBeatRef

classe

Une référence de beat de première classe : le beat plus la chaîne de portées capturée à l'endroit où la référence a été créée (de la racine jusqu'à la portée qui déclare le beat incluse ; vide pour les beats de premier niveau). Produite chaque fois qu'une expression lit un identifiant qui se résout en un beat.

beat

propriété

public var beat(default, null):NBeatDecl

La déclaration de beat référencée.

Retourne NBeatDecl

stack

propriété

public var stack(default, null):Array<RuntimeScope>

La chaîne de portées capturée (fermeture). Vide pour les beats de premier niveau.

Retourne Array<RuntimeScope>

new

constructeur

public function new(beat:NBeatDecl, stack:Array<RuntimeScope>)
ParamètreTypeDescription
beat NBeatDecl
stack Array<RuntimeScope>

beatOf

méthode

public static function beatOf(value:Any):Null<NBeatDecl>

Renvoie le beat sous-jacent si la valeur d'exécution donnée est une déclaration ou une référence de beat, null sinon.

ParamètreTypeDescription
value Any

Retourne Null<NBeatDecl>

beatNameOf

méthode

public static function beatNameOf(value:Any):Null<String>

Renvoie le nom du beat si la valeur d'exécution donnée est une déclaration ou une référence de beat, null sinon. Utilisé par les bindings hôtes, où les valeurs de beat franchissent la frontière sous forme de nom.

ParamètreTypeDescription
value Any

Retourne Null<String>

RuntimeInsertion

classe

Données à conserver avec une portée quand un beat est inséré dans un choix

id

propriété

public var id:Int

L'identifiant de l'insertion, un entier unique parmi toutes les insertions.

Retourne Int

origin

propriété

public var origin:NInsertion

Le nœud d'origine à l'origine de cette insertion

Retourne NInsertion

options

propriété

public var options:Array<ChoiceOption> = null

Les options de choix insérées, ou null si rien n'est encore inséré

Retourne Array<ChoiceOption>

stack

propriété

public var stack:Array<RuntimeScope> = []

La pile d'appels de cette insertion, utilisée pour reprendre l'exécution au bon endroit une fois qu'un de ses choix a été sélectionné

Retourne Array<RuntimeScope>

parentPartialOptions

propriété

public var parentPartialOptions:Array<ChoiceOption> = null

Instantané des options de choix collectées pour le choix parent AVANT que cette insertion commence son évaluation. Sert à la sauvegarde et à la restauration pendant la phase 1, pour que celle-ci reprenne sans réexécuter les insertions précédentes.

Retourne Array<ChoiceOption>

parentNextOptionIndex

propriété

public var parentNextOptionIndex:Int = 0

L'indice de la prochaine option dans le choix parent après cette insertion. Utilisé avec parentPartialOptions pour reprendre la phase 1 à la bonne position après une restauration.

Retourne Int

new

constructeur

public function new(id:Int, origin:NInsertion)
ParamètreTypeDescription
id Int
origin NInsertion

RuntimeError

classe

Erreur d'exécution pouvant survenir pendant l'exécution d'un script.

new

constructeur

public function new(message:String, ?pos:Position)
ParamètreTypeDescription
message String
pos Position

EvalNext

classe

Classe utilitaire pour gérer l'étape d'évaluation suivante. Sert à décider si cette étape s'exécute de façon synchrone ou asynchrone.

sync

propriété

public var sync:Bool = true

Indique si l'étape suivante doit s'exécuter de façon synchrone.

Retourne Bool

cb

propriété

public var cb:()->Void = null

Le callback à exécuter pour l'étape suivante.

Retourne ()->Void

new

constructeur

public function new()

Crée une nouvelle instance d'EvalNext.

NodeIdStep

enum

enum abstract NodeIdStep(Int)

SECTION

constante

SECTION = 1

Retourne NodeIdStep

BRANCH

constante

BRANCH = 2

Retourne NodeIdStep

BLOCK

constante

BLOCK = 3

Retourne NodeIdStep

NODE

constante

NODE = 4

Retourne NodeIdStep

NodeIdMap

classe

new

constructeur

public inline function new()

get

méthode

public inline function get(key:NodeId):Null<V>
ParamètreTypeDescription
key NodeId

Retourne Null<V>

set

méthode

public inline function set(key:NodeId, value:V):Void
ParamètreTypeDescription
key NodeId
value V

Retourne Void

remove

méthode

public inline function remove(key:NodeId):Void
ParamètreTypeDescription
key NodeId

Retourne Void

exists

méthode

public inline function exists(key:NodeId):Bool
ParamètreTypeDescription
key NodeId

Retourne Bool

clear

méthode

public inline function clear():Void

Retourne Void

iterator

méthode

public inline function iterator():NodeIdMapIterator<V>

Retourne NodeIdMapIterator<V>

keys

méthode

public inline function keys():NodeIdMapKeyIterator<V>

Retourne NodeIdMapKeyIterator<V>

keyValueIterator

méthode

public inline function keyValueIterator():NodeIdMapKeyValueIterator<V>

Retourne NodeIdMapKeyValueIterator<V>

NodeIdMapKeyVal

alias de type

typedef NodeIdMapKeyVal<V> = { value:V, key:NodeId }

Comment

classe

Représente un nœud de commentaire dans l'AST. Contient le texte du commentaire et indique s'il est multiligne.

content

propriété

public var content:String

Le contenu textuel du commentaire.

Retourne String

multiline

propriété

public var multiline:Bool

Indique s'il s'agit d'un commentaire multiligne (/* ... */) ou d'une seule ligne (//).

Retourne Bool

isHash

propriété

public var isHash:Bool

Indique s'il s'agit d'un commentaire de hachage (#identifiant).

Retourne Bool

new

constructeur

public function new(id:NodeId, pos:Position, content:String, multiline:Bool, ?isHash:Bool = false)

Crée un nouveau nœud de commentaire.

ParamètreTypeDescription
id NodeId
pos Position Position dans la source où ce commentaire apparaît
content String Le contenu textuel du commentaire
multiline Bool Indique s'il s'agit d'un commentaire multiligne
isHash Bool Indique s'il s'agit d'un commentaire de hachage

toJson

méthode

public override function toJson():Dynamic

Convertit le nœud de commentaire en représentation JSON.

Retourne Dynamic Objet dynamique contenant les données du commentaire

AstNode

classe

Classe de base des nœuds d'AST pouvant porter des commentaires. Étend Node avec la prise en charge des commentaires avant et après.

leadingComments

propriété

public var leadingComments:Null<Array<Comment>>

Commentaires qui précèdent ce nœud.

Retourne Null<Array<Comment>>

trailingComments

propriété

public var trailingComments:Null<Array<Comment>>

Commentaires qui suivent ce nœud.

Retourne Null<Array<Comment>>

new

constructeur

public function new(id:NodeId, pos:Position, ?leadingComments:Array<Comment>, ?trailingComments:Array<Comment>)

Crée un nouveau nœud acceptant des commentaires.

ParamètreTypeDescription
id NodeId
pos Position Position dans la source où ce nœud apparaît
leadingComments Array<Comment> Tableau optionnel des commentaires précédant le nœud
trailingComments Array<Comment> Tableau optionnel des commentaires suivant le nœud

eachComment

méthode

public function eachComment(handleComment:(node:AstNode, comment:Comment)->Void):Void
ParamètreTypeDescription
handleComment (node:AstNode, comment:Comment)->Void

Retourne Void

toJson

méthode

public override function toJson():Dynamic

Convertit le nœud et ses commentaires en représentation JSON.

Retourne Dynamic Objet dynamique contenant les données du nœud et ses commentaires

NExpr

classe

Classe de base de tous les nœuds d'expression de l'AST.

new

constructeur

public function new(id:NodeId, pos:Position, ?leadingComments:Array<Comment>, ?trailingComments:Array<Comment>)
ParamètreTypeDescription
id NodeId
pos Position
leadingComments Array<Comment>
trailingComments Array<Comment>

toJson

méthode

public override function toJson():Dynamic

Convertit le nœud d'expression en représentation JSON.

Retourne Dynamic Objet dynamique contenant les données de l'expression

NStateDecl

classe

Représente un nœud de déclaration d'état dans l'AST. Un état est soit temporaire (nouvel état), soit permanent.

temporary

propriété

public var temporary:Bool

Indique si cet état est temporaire (nouvel état).

Retourne Bool

fields

propriété

public var fields:Array<NObjectField>

Champs définis pour cet état.

Retourne Array<NObjectField>

style

propriété

public var style:BlockStyle

Style de bloc de cet état

Retourne BlockStyle

new

constructeur

public function new(id:NodeId, pos:Position, temporary:Bool, fields:Array<NObjectField>, ?leadingComments:Array<Comment>, ?trailingComments:Array<Comment>)

Crée un nouveau nœud de déclaration d'état.

ParamètreTypeDescription
id NodeId
pos Position Position dans la source où cet état apparaît
temporary Bool Indique s'il s'agit d'un état temporaire
fields Array<NObjectField> Tableau des définitions de propriétés
leadingComments Array<Comment> Commentaires optionnels avant l'état
trailingComments Array<Comment> Commentaires optionnels après l'état

get

méthode

public function get(name:String):NExpr
ParamètreTypeDescription
name String

Retourne NExpr

toJson

méthode

public override function toJson():Dynamic

Convertit la déclaration d'état en représentation JSON.

Retourne Dynamic Objet dynamique contenant les données de l'état

NObjectField

classe

Représente un champ d'objet dans l'AST (paire nom-valeur).

name

propriété

public var name:String

Nom du champ.

Retourne String

value

propriété

public var value:NExpr

Expression de la valeur du champ.

Retourne NExpr

new

constructeur

public function new(id:NodeId, pos:Position, name:String, value:NExpr, ?leadingComments:Array<Comment>, ?trailingComments:Array<Comment>)

Crée un nouveau nœud de champ d'objet.

ParamètreTypeDescription
id NodeId
pos Position Position dans la source où ce champ apparaît
name String Nom du champ
value NExpr Expression de la valeur du champ
leadingComments Array<Comment> Commentaires optionnels avant le champ
trailingComments Array<Comment> Commentaires optionnels après le champ

toJson

méthode

public override function toJson():Dynamic

Convertit le champ d'objet en représentation JSON.

Retourne Dynamic Objet dynamique contenant les données du champ

NCharacterDecl

classe

Représente une déclaration de personnage dans l'AST.

name

propriété

public var name:String

Nom du personnage.

Retourne String

namePos

propriété

public var namePos:Position

Position de la partie nom.

Retourne Position

fields

propriété

public var fields:Array<NObjectField>

Champs définis pour ce personnage.

Retourne Array<NObjectField>

style

propriété

public var style:BlockStyle

Style de bloc de ce personnage

Retourne BlockStyle

new

constructeur

public function new(id:NodeId, pos:Position, name:String, namePos:Position, fields:Array<NObjectField>, ?leadingComments:Array<Comment>, ?trailingComments:Array<Comment>)

Crée un nouveau nœud de déclaration de personnage.

ParamètreTypeDescription
id NodeId
pos Position Position dans la source où ce personnage apparaît
name String Nom du personnage
namePos Position
fields Array<NObjectField> Tableau des définitions de propriétés
leadingComments Array<Comment> Commentaires optionnels avant le personnage
trailingComments Array<Comment> Commentaires optionnels après le personnage

get

méthode

public function get(name:String):NExpr
ParamètreTypeDescription
name String

Retourne NExpr

toJson

méthode

public override function toJson():Dynamic

Convertit la déclaration de personnage en représentation JSON.

Retourne Dynamic Objet dynamique contenant les données du personnage

NBeatParam

classe

Un paramètre d'une déclaration de beat, par exemple name ou mood = "happy" dans beat Greet(name, mood = "happy").

name

propriété

public var name:String

Nom du paramètre.

Retourne String

namePos

propriété

public var namePos:Position

Position du nom du paramètre dans la source.

Retourne Position

defaultValue

propriété

public var defaultValue:Null<NExpr>

Expression de valeur par défaut optionnelle, évaluée quand aucun argument n'est fourni.

Retourne Null<NExpr>

new

constructeur

public function new(name:String, namePos:Position, ?defaultValue:NExpr)
ParamètreTypeDescription
name String
namePos Position
defaultValue NExpr

toJson

méthode

public function toJson():Dynamic

Retourne Dynamic

NBeatDecl

classe

Représente une déclaration de beat (scène) dans l'AST.

name

propriété

public var name:String

Nom du beat.

Retourne String

body

propriété

public var body:Array<AstNode>

Tableau des nœuds qui composent le contenu du beat.

Retourne Array<AstNode>

style

propriété

public var style:BlockStyle

Style de bloc de ce beat

Retourne BlockStyle

params

propriété

public var params:Null<Array<NBeatParam>> = null

Paramètres optionnels de ce beat (null quand la déclaration n'a pas de parenthèses). À l'exécution, ils deviennent des champs d'état temporaires à la portée du beat.

Retourne Null<Array<NBeatParam>>

new

constructeur

public function new(id:NodeId, pos:Position, name:String, body:Array<AstNode>, ?leadingComments:Array<Comment>, ?trailingComments:Array<Comment>)

Crée un nouveau nœud de déclaration de beat.

ParamètreTypeDescription
id NodeId
pos Position Position dans la source où ce beat apparaît
name String Nom du beat
body Array<AstNode> Tableau des nœuds composant le contenu du beat
leadingComments Array<Comment> Commentaires optionnels avant le beat
trailingComments Array<Comment> Commentaires optionnels après le beat

toJson

méthode

public override function toJson():Dynamic

Convertit la déclaration de beat en représentation JSON.

Retourne Dynamic Objet dynamique contenant les données du beat

StringPartType

enum

Représente les différents types de parties pouvant apparaître dans un littéral de chaîne.

Raw

constante

Raw(text:String)

Contenu texte brut.

ParamètreTypeDescription
text String

Expr

constante

Expr(expr:NExpr)

Expression interpolée (${...} ou $identifiant).

ParamètreTypeDescription
expr NExpr

Tag

constante

Tag(closing:Bool, expr:NStringLiteral)

Tag de mise en forme du texte ( ou ).

ParamètreTypeDescription
closing Bool
expr NStringLiteral

BlockStyle

enum

enum abstract BlockStyle(Int)

Plain

constante

Plain = 0

Retourne BlockStyle

Braces

constante

Braces = 1

Retourne BlockStyle

toString

méthode

public function toString():String

Retourne String

ConditionStyle

enum

enum abstract ConditionStyle(Int)

Plain

constante

Plain = 0

Retourne ConditionStyle

Parens

constante

Parens = 2

Retourne ConditionStyle

toString

méthode

public function toString():String

Retourne String

AlternativeMode

enum

enum abstract AlternativeMode(Int)

Représente le mode d'un bloc d'alternatives.

Sequence

constante

Sequence = 0

Retourne AlternativeMode

Cycle

constante

Cycle = 1

Retourne AlternativeMode

Once

constante

Once = 2

Retourne AlternativeMode

Pick

constante

Pick = 3

Retourne AlternativeMode

Shuffle

constante

Shuffle = 4

Retourne AlternativeMode

toString

méthode

public function toString():String

Retourne String

NStringPart

classe

Représente une partie pouvant apparaître dans un littéral de chaîne.

partType

propriété

public var partType:StringPartType

Le type de la partie de chaîne

Retourne StringPartType

new

constructeur

public function new(id:NodeId, pos:Position, partType:StringPartType, ?leadingComments:Array<Comment>, ?trailingComments:Array<Comment>)

Crée un nouveau nœud de partie de chaîne.

ParamètreTypeDescription
id NodeId
pos Position Position dans la source où cette partie de chaîne apparaît
partType StringPartType
leadingComments Array<Comment> Commentaires optionnels avant la chaîne
trailingComments Array<Comment> Commentaires optionnels après la chaîne

toJson

méthode

public override function toJson():Dynamic

Convertit la partie de chaîne en représentation JSON.

Retourne Dynamic Objet dynamique contenant les données de la partie de chaîne

NStringLiteral

classe

Représente un littéral de chaîne dans l'AST, avec prise en charge de l'interpolation et des tags.

parts

propriété

public var parts:Array<NStringPart>

Tableau des parties qui composent ce littéral de chaîne.

Retourne Array<NStringPart>

quotes

propriété

public var quotes:Quotes

Le type de guillemets utilisés pour ce littéral de chaîne

Retourne Quotes

new

constructeur

public function new(id:NodeId, pos:Position, quotes:Quotes, parts:Array<NStringPart>, ?leadingComments:Array<Comment>, ?trailingComments:Array<Comment>)

Crée un nouveau nœud de littéral de chaîne.

ParamètreTypeDescription
id NodeId
pos Position Position dans la source où cette chaîne apparaît
quotes Quotes
parts Array<NStringPart> Tableau des parties de chaîne (texte brut, interpolations et tags)
leadingComments Array<Comment> Commentaires optionnels avant la chaîne
trailingComments Array<Comment> Commentaires optionnels après la chaîne

toJson

méthode

public override function toJson():Dynamic

Convertit le littéral de chaîne en représentation JSON.

Retourne Dynamic Objet dynamique contenant les données de la chaîne et ses parties

NTextStatement

classe

Représente une instruction de texte dans l'AST.

content

propriété

public var content:NStringLiteral

Le contenu de l'instruction de texte.

Retourne NStringLiteral

condition

propriété

public var condition:Null<NExpr>

Condition optionnelle qui doit être vraie pour que ce texte s'affiche.

Retourne Null<NExpr>

conditionStyle

propriété

public var conditionStyle:ConditionStyle

Le style de la condition (nue ou entre parenthèses).

Retourne ConditionStyle

conditionPos

propriété

public var conditionPos:Null<Position>

Position de la clause « if condition » finale (du mot-clé 'if' à la fin de la condition).

Retourne Null<Position>

new

constructeur

public function new(id:NodeId, pos:Position, content:NStringLiteral, ?leadingComments:Array<Comment>, ?trailingComments:Array<Comment>)

Crée un nouveau nœud d'instruction de texte.

ParamètreTypeDescription
id NodeId
pos Position Position dans la source où ce texte apparaît
content NStringLiteral Littéral de chaîne contenant le texte
leadingComments Array<Comment> Commentaires optionnels avant le texte
trailingComments Array<Comment> Commentaires optionnels après le texte

toJson

méthode

public override function toJson():Dynamic

Convertit l'instruction de texte en représentation JSON.

Retourne Dynamic Objet dynamique contenant les données du texte

NDialogueStatement

classe

Représente une instruction de dialogue dans l'AST (personnage: "texte").

character

propriété

public var character:String

Nom du personnage qui parle.

Retourne String

characterPos

propriété

public var characterPos:Position

Position de l'étiquette du personnage

Retourne Position

content

propriété

public var content:NStringLiteral

Contenu du dialogue.

Retourne NStringLiteral

condition

propriété

public var condition:Null<NExpr>

Condition optionnelle qui doit être vraie pour que ce dialogue s'affiche.

Retourne Null<NExpr>

conditionStyle

propriété

public var conditionStyle:ConditionStyle

Le style de la condition (nue ou entre parenthèses).

Retourne ConditionStyle

conditionPos

propriété

public var conditionPos:Null<Position>

Position de la clause « if condition » finale (du mot-clé 'if' à la fin de la condition).

Retourne Null<Position>

new

constructeur

public function new(id:NodeId, pos:Position, character:String, characterPos:Position, content:NStringLiteral, ?leadingComments:Array<Comment>, ?trailingComments:Array<Comment>)

Crée un nouveau nœud d'instruction de dialogue.

ParamètreTypeDescription
id NodeId
pos Position Position dans la source où ce dialogue apparaît
character String Nom du personnage qui parle
characterPos Position Position de l'étiquette du personnage
content NStringLiteral Littéral de chaîne contenant le texte du dialogue
leadingComments Array<Comment> Commentaires optionnels avant le dialogue
trailingComments Array<Comment> Commentaires optionnels après le dialogue

toJson

méthode

public override function toJson():Dynamic

Convertit l'instruction de dialogue en représentation JSON.

Retourne Dynamic Objet dynamique contenant les données du dialogue

NChoiceStatement

classe

Représente une instruction de choix dans l'AST.

options

propriété

public var options:Array<NChoiceOption>

Tableau des options disponibles dans ce choix.

Retourne Array<NChoiceOption>

style

propriété

public var style:BlockStyle

Le style de bloc de l'instruction de choix

Retourne BlockStyle

new

constructeur

public function new(id:NodeId, pos:Position, options:Array<NChoiceOption>, ?leadingComments:Array<Comment>, ?trailingComments:Array<Comment>)

Crée un nouveau nœud d'instruction de choix.

ParamètreTypeDescription
id NodeId
pos Position Position dans la source où ce choix apparaît
options Array<NChoiceOption> Tableau des options de choix disponibles
leadingComments Array<Comment> Commentaires optionnels avant le choix
trailingComments Array<Comment> Commentaires optionnels après le choix

toJson

méthode

public override function toJson():Dynamic

Convertit l'instruction de choix en représentation JSON.

Retourne Dynamic Objet dynamique contenant les données du choix

NChoiceOption

classe

Représente une option au sein d'une instruction de choix.

text

propriété

public var text:NStringLiteral

Le texte affiché pour cette option.

Retourne NStringLiteral

insertion

propriété

public var insertion:NInsertion

À la place d'un texte, ce peut aussi être une insertion

Retourne NInsertion

condition

propriété

public var condition:Null<NExpr>

Condition optionnelle qui doit être vraie pour que cette option soit disponible.

Retourne Null<NExpr>

conditionStyle

propriété

public var conditionStyle:ConditionStyle

Le style de la condition (nue ou entre parenthèses).

Retourne ConditionStyle

conditionPos

propriété

public var conditionPos:Null<Position>

Position de la clause « if condition » finale (du mot-clé 'if' à la fin de la condition).

Retourne Null<Position>

body

propriété

public var body:Array<AstNode>

Tableau des nœuds à exécuter quand cette option est choisie.

Retourne Array<AstNode>

style

propriété

public var style:BlockStyle

Le style de bloc du corps

Retourne BlockStyle

once

propriété

public var once:Bool

Indique si cette option ne peut être choisie qu'une fois (elle disparaît après sélection).

Retourne Bool

new

constructeur

public function new(id:NodeId, pos:Position, text:NStringLiteral, insertion:NInsertion, condition:Null<NExpr>, conditionStyle:ConditionStyle, body:Array<AstNode>, ?leadingComments:Array<Comment>, ?trailingComments:Array<Comment>)

Crée un nouveau nœud d'option de choix.

ParamètreTypeDescription
id NodeId
pos Position Position dans la source où cette option apparaît
text NStringLiteral Littéral de chaîne contenant le texte de l'option
insertion NInsertion
condition Null<NExpr> Condition optionnelle de disponibilité de l'option
conditionStyle ConditionStyle Le style de la condition (nue ou entre parenthèses)
body Array<AstNode> Tableau des nœuds à exécuter quand elle est choisie
leadingComments Array<Comment> Commentaires optionnels avant l'option
trailingComments Array<Comment> Commentaires optionnels après l'option

toJson

méthode

public override function toJson():Dynamic

Convertit l'option de choix en représentation JSON.

Retourne Dynamic Objet dynamique contenant les données de l'option

NBlock

classe

Représente un bloc contenant une séquence de nœuds

body

propriété

public var body:Array<AstNode>

Tableau des nœuds qui composent le contenu du beat.

Retourne Array<AstNode>

style

propriété

public var style:BlockStyle

Le style de bloc du corps.

Retourne BlockStyle

new

constructeur

public function new(id:NodeId, pos:Position, body:Array<AstNode>, ?leadingComments:Array<Comment>, ?trailingComments:Array<Comment>)

Crée un nouveau nœud de bloc.

ParamètreTypeDescription
id NodeId
pos Position Position dans la source où ce beat apparaît
body Array<AstNode> Tableau des nœuds composant le contenu du bloc
leadingComments Array<Comment> Commentaires optionnels avant le beat
trailingComments Array<Comment> Commentaires optionnels après le beat

toJson

méthode

public override function toJson():Dynamic

Convertit la déclaration de beat en représentation JSON.

Retourne Dynamic Objet dynamique contenant les données du beat

NIfStatement

classe

Représente une instruction if dans l'AST, avec une branche else optionnelle.

condition

propriété

public var condition:NExpr

La condition à évaluer.

Retourne NExpr

conditionStyle

propriété

public var conditionStyle:ConditionStyle

Le style de la condition (nue ou entre parenthèses).

Retourne ConditionStyle

thenBranch

propriété

public var thenBranch:NBlock

Tableau des nœuds à exécuter si la condition est vraie.

Retourne NBlock

elseBranch

propriété

public var elseBranch:Null<NBlock>

Tableau optionnel des nœuds à exécuter si la condition est fausse.

Retourne Null<NBlock>

elseLeadingComments

propriété

public var elseLeadingComments:Null<Array<Comment>>

Commentaires qui précèdent le mot-clé else.

Retourne Null<Array<Comment>>

elseTrailingComments

propriété

public var elseTrailingComments:Null<Array<Comment>>

Commentaires qui suivent le mot-clé else.

Retourne Null<Array<Comment>>

new

constructeur

public function new(id:NodeId, pos:Position, condition:NExpr, conditionStyle:ConditionStyle, thenBranch:NBlock, elseBranch:Null<NBlock>, ?leadingComments:Array<Comment>, ?trailingComments:Array<Comment>, ?elseLeadingComments:Array<Comment>, ?elseTrailingComments:Array<Comment>)

Crée un nouveau nœud d'instruction if.

ParamètreTypeDescription
id NodeId
pos Position Position dans la source où cette instruction if apparaît
condition NExpr Expression à évaluer
conditionStyle ConditionStyle Le style de la condition (nue ou entre parenthèses)
thenBranch NBlock Nœuds à exécuter si la condition est vraie
elseBranch Null<NBlock> Nœuds optionnels à exécuter si la condition est fausse
leadingComments Array<Comment> Commentaires optionnels avant le if
trailingComments Array<Comment> Commentaires optionnels après le if
elseLeadingComments Array<Comment> Commentaires optionnels avant le else
elseTrailingComments Array<Comment> Commentaires optionnels après le else

toJson

méthode

public override function toJson():Dynamic

Convertit l'instruction if en représentation JSON.

Retourne Dynamic Objet dynamique contenant les données de l'instruction if

NAlternative

classe

Représente un bloc d'alternatives (sequence, cycle, once, pick, shuffle).

mode

propriété

public var mode:AlternativeMode

Le mode d'alternative (sequence, cycle, once, pick, shuffle).

Retourne AlternativeMode

items

propriété

public var items:Array<NBlock>

Tableau des blocs d'éléments. Chaque élément est un bloc d'instructions.

Retourne Array<NBlock>

style

propriété

public var style:BlockStyle

Le style de bloc (indenté ou entre accolades).

Retourne BlockStyle

separatorComments

propriété

public var separatorComments:Null<Array<Array<Comment>>>

Commentaires qui précèdent les séparateurs.

Retourne Null<Array<Array<Comment>>>

new

constructeur

public function new(id:NodeId, pos:Position, mode:AlternativeMode, items:Array<NBlock>, ?leadingComments:Array<Comment>, ?trailingComments:Array<Comment>)

Crée un nouveau nœud de bloc d'alternatives.

ParamètreTypeDescription
id NodeId L'identifiant du nœud
pos Position Position dans la source où cette alternative apparaît
mode AlternativeMode Le mode d'alternative
items Array<NBlock> Tableau des blocs d'éléments
leadingComments Array<Comment> Commentaires optionnels avant l'alternative
trailingComments Array<Comment> Commentaires optionnels après l'alternative

toJson

méthode

public override function toJson():Dynamic

Convertit le bloc d'alternatives en représentation JSON.

Retourne Dynamic Objet dynamique contenant les données de l'alternative

NCall

classe

Représente une expression d'appel de fonction dans l'AST.

target

propriété

public var target:NExpr

L'expression appelée.

Retourne NExpr

args

propriété

public var args:Array<NExpr>

Tableau des expressions passées en arguments à l'appel.

Retourne Array<NExpr>

new

constructeur

public function new(id:NodeId, pos:Position, target:NExpr, args:Array<NExpr>, ?leadingComments:Array<Comment>, ?trailingComments:Array<Comment>)

Crée un nouveau nœud d'expression d'appel.

ParamètreTypeDescription
id NodeId
pos Position Position dans la source où cet appel apparaît
target NExpr Expression appelée
args Array<NExpr> Tableau des expressions d'arguments
leadingComments Array<Comment> Commentaires optionnels avant l'appel
trailingComments Array<Comment> Commentaires optionnels après l'appel

toJson

méthode

public override function toJson():Dynamic

Convertit l'expression d'appel en représentation JSON.

Retourne Dynamic Objet dynamique contenant les données de l'appel

NTransition

classe

Représente une transition vers un autre beat (->).

target

propriété

public var target:String

Nom du beat cible (null quand la cible est dynamique, voir targetExpr).

Retourne String

targetPos

propriété

public var targetPos:Position

Position de la partie cible de la transition

Retourne Position

targetExpr

propriété

public var targetExpr:Null<NExpr> = null

Expression de cible dynamique, issue de la forme -> beat(expr). Quand elle est définie, target vaut null et l'expression est résolue à l'exécution.

Retourne Null<NExpr>

args

propriété

public var args:Null<Array<NExpr>> = null

Arguments optionnels passés au beat cible, issus de -> SomeBeat(args...) ou -> beat(expr, args...).

Retourne Null<Array<NExpr>>

new

constructeur

public function new(id:NodeId, pos:Position, target:String, targetPos:Position, ?leadingComments:Array<Comment>, ?trailingComments:Array<Comment>)

Crée un nouveau nœud de transition.

ParamètreTypeDescription
id NodeId
pos Position Position dans la source où cette transition apparaît
target String Nom du beat cible
targetPos Position Position de la partie cible de la transition
leadingComments Array<Comment> Commentaires optionnels avant la transition
trailingComments Array<Comment> Commentaires optionnels après la transition

toJson

méthode

public override function toJson():Dynamic

Convertit la transition en représentation JSON.

Retourne Dynamic Objet dynamique contenant les données de la transition

NInsertion

classe

Représente l'insertion d'un autre beat (+).

target

propriété

public var target:String

Nom du beat cible (null quand la cible est dynamique, voir targetExpr).

Retourne String

targetPos

propriété

public var targetPos:Position

Position de la partie cible de l'insertion

Retourne Position

targetExpr

propriété

public var targetExpr:Null<NExpr> = null

Expression de cible dynamique, issue de la forme + beat(expr). Quand elle est définie, target vaut null et l'expression est résolue à l'exécution.

Retourne Null<NExpr>

args

propriété

public var args:Null<Array<NExpr>> = null

Arguments optionnels passés au beat cible, issus de + SomeBeat(args...) ou + beat(expr, args...).

Retourne Null<Array<NExpr>>

new

constructeur

public function new(id:NodeId, pos:Position, target:String, targetPos:Position, ?leadingComments:Array<Comment>, ?trailingComments:Array<Comment>)

Crée un nouveau nœud d'insertion.

ParamètreTypeDescription
id NodeId
pos Position Position dans la source où cette insertion apparaît
target String Nom du beat cible
targetPos Position Position de la partie cible de l'insertion
leadingComments Array<Comment> Commentaires optionnels avant l'insertion
trailingComments Array<Comment> Commentaires optionnels après l'insertion

toJson

méthode

public override function toJson():Dynamic

Convertit l'insertion en représentation JSON.

Retourne Dynamic Objet dynamique contenant les données de l'insertion

NBeatCall

classe

Représente une instruction d'appel de beat dynamique : beat(expr, args...). Exécute le beat résolu comme un appel qui préserve la pile (comme un appel statique SomeBeat(args...)), la cible étant résolue à l'exécution.

targetExpr

propriété

public var targetExpr:NExpr

Expression de cible, résolue à l'exécution en un beat (un nom sous forme de chaîne, une valeur de beat ou une référence de beat).

Retourne NExpr

targetPos

propriété

public var targetPos:Position

Position de la partie cible beat(...).

Retourne Position

args

propriété

public var args:Null<Array<NExpr>> = null

Arguments optionnels passés au beat cible.

Retourne Null<Array<NExpr>>

new

constructeur

public function new(id:NodeId, pos:Position, targetExpr:NExpr, targetPos:Position, ?leadingComments:Array<Comment>, ?trailingComments:Array<Comment>)

Crée un nouveau nœud d'appel de beat dynamique.

ParamètreTypeDescription
id NodeId
pos Position Position dans la source où cet appel apparaît
targetExpr NExpr Expression résolvant vers le beat cible
targetPos Position Position de la partie cible
leadingComments Array<Comment> Commentaires optionnels avant l'appel
trailingComments Array<Comment> Commentaires optionnels après l'appel

toJson

méthode

public override function toJson():Dynamic

Convertit l'appel de beat en représentation JSON.

Retourne Dynamic Objet dynamique contenant les données de l'appel de beat

NFunctionDecl

classe

Représente une fonction appelable dans l'AST

name

propriété

public var name:Null<String>

Le nom de la fonction (s'il y en a un)

Retourne Null<String>

args

propriété

public var args:Array<String>

Noms des arguments

Retourne Array<String>

code

propriété

public var code:String

Le code de la fonction (signature comprise)

Retourne String

external

propriété

public var external:Bool

Indique s'il s'agit d'une fonction externe (donc d'une simple déclaration sans implémentation)

Retourne Bool

new

constructeur

public function new(id:NodeId, pos:Position, name:Null<String>, args:Array<String>, code:String, external:Bool, ?leadingComments:Array<Comment>, ?trailingComments:Array<Comment>)

Crée un nouveau nœud de fonction.

ParamètreTypeDescription
id NodeId
pos Position Position dans la source où cette fonction apparaît
name Null<String> Le nom de la fonction (s'il y en a un)
args Array<String> Noms des arguments
code String Le code de la fonction (signature comprise)
external Bool Indique s'il s'agit d'une fonction externe (donc d'une simple déclaration sans implémentation)
leadingComments Array<Comment> Commentaires optionnels avant la fonction
trailingComments Array<Comment> Commentaires optionnels après la fonction

toJson

méthode

public override function toJson():Dynamic

Convertit le littéral en représentation JSON.

Retourne Dynamic Objet dynamique contenant les données du littéral

NLiteral

classe

Représente les valeurs littérales dans l'AST (nombres, booléens, tableaux, objets).

value

propriété

public var value:Any

La valeur littérale.

Retourne Any

literalType

propriété

public var literalType:LiteralType

Type de la valeur littérale.

Retourne LiteralType

new

constructeur

public function new(id:NodeId, pos:Position, value:Any, literalType:LiteralType, ?leadingComments:Array<Comment>, ?trailingComments:Array<Comment>)

Crée un nouveau nœud de littéral.

ParamètreTypeDescription
id NodeId
pos Position Position dans la source où ce littéral apparaît
value Any La valeur littérale
literalType LiteralType
leadingComments Array<Comment> Commentaires optionnels avant le littéral
trailingComments Array<Comment> Commentaires optionnels après le littéral

toJson

méthode

public override function toJson():Dynamic

Convertit le littéral en représentation JSON.

Retourne Dynamic Objet dynamique contenant les données du littéral

LiteralType

enum

Types possibles des valeurs littérales.

Number

constante

Number

Littéral numérique

Boolean

constante

Boolean

Littéral booléen

Null

constante

Null

Littéral null

Array

constante

Array

Littéral de tableau

Object

constante

Object(style:BlockStyle)

Littéral d'objet

ParamètreTypeDescription
style BlockStyle

NAccess

classe

Représente une expression d'accès à un champ (obj.field).

target

propriété

public var target:Null<NExpr>

Objet cible optionnel de l'accès.

Retourne Null<NExpr>

name

propriété

public var name:String

Nom du champ accédé.

Retourne String

new

constructeur

public function new(id:NodeId, pos:Position, target:Null<NExpr>, name:String, ?leadingComments:Array<Comment>, ?trailingComments:Array<Comment>)

Crée un nouveau nœud d'accès à un champ.

ParamètreTypeDescription
id NodeId
pos Position Position dans la source où cet accès apparaît
target Null<NExpr> Expression optionnelle de l'objet cible
name String Nom du champ accédé
leadingComments Array<Comment> Commentaires optionnels avant l'accès
trailingComments Array<Comment> Commentaires optionnels après l'accès

toJson

méthode

public override function toJson():Dynamic

Convertit l'accès au champ en représentation JSON.

Retourne Dynamic Objet dynamique contenant les données de l'accès

NAssign

classe

Représente une expression d'affectation (a = b, a += b, etc.).

target

propriété

public var target:NExpr

Expression cible de l'affectation.

Retourne NExpr

op

propriété

public var op:TokenType

Type d'opérateur d'affectation.

Retourne TokenType

value

propriété

public var value:NExpr

Valeur affectée.

Retourne NExpr

new

constructeur

public function new(id:NodeId, pos:Position, target:NExpr, op:TokenType, value:NExpr, ?leadingComments:Array<Comment>, ?trailingComments:Array<Comment>)

Crée un nouveau nœud d'affectation.

ParamètreTypeDescription
id NodeId
pos Position Position dans la source où cette affectation apparaît
target NExpr Expression cible de l'affectation
op TokenType Type d'opérateur d'affectation
value NExpr Valeur affectée
leadingComments Array<Comment> Commentaires optionnels avant l'affectation
trailingComments Array<Comment> Commentaires optionnels après l'affectation

toJson

méthode

public override function toJson():Dynamic

Convertit l'affectation en représentation JSON.

Retourne Dynamic Objet dynamique contenant les données de l'affectation

NArrayAccess

classe

Représente une expression d'accès à un tableau (array[index]).

target

propriété

public var target:NExpr

Tableau cible de l'accès.

Retourne NExpr

index

propriété

public var index:NExpr

Expression d'indice.

Retourne NExpr

new

constructeur

public function new(id:NodeId, pos:Position, target:NExpr, index:NExpr, ?leadingComments:Array<Comment>, ?trailingComments:Array<Comment>)

Crée un nouveau nœud d'accès à un tableau.

ParamètreTypeDescription
id NodeId
pos Position Position dans la source où cet accès apparaît
target NExpr Expression du tableau cible
index NExpr Expression d'indice
leadingComments Array<Comment> Commentaires optionnels avant l'accès
trailingComments Array<Comment> Commentaires optionnels après l'accès

toJson

méthode

public override function toJson():Dynamic

Convertit l'accès au tableau en représentation JSON.

Retourne Dynamic Objet dynamique contenant les données de l'accès au tableau

NBinary

classe

Représente une expression d'opération binaire (a + b, a && b, etc.).

left

propriété

public var left:NExpr

Expression de l'opérande gauche.

Retourne NExpr

op

propriété

public var op:TokenType

Type d'opérateur.

Retourne TokenType

right

propriété

public var right:NExpr

Expression de l'opérande droit.

Retourne NExpr

new

constructeur

public function new(id:NodeId, pos:Position, left:NExpr, op:TokenType, right:NExpr, ?leadingComments:Array<Comment>, ?trailingComments:Array<Comment>)

Crée un nouveau nœud d'opération binaire.

ParamètreTypeDescription
id NodeId
pos Position Position dans la source où cette opération apparaît
left NExpr Expression de l'opérande gauche
op TokenType Type d'opérateur binaire
right NExpr Expression de l'opérande droit
leadingComments Array<Comment> Commentaires optionnels avant l'opération
trailingComments Array<Comment> Commentaires optionnels après l'opération

toJson

méthode

public override function toJson():Dynamic

Convertit l'opération binaire en représentation JSON.

Retourne Dynamic Objet dynamique contenant les données de l'opération

NUnary

classe

Représente une expression d'opération unaire (!x, -x, etc.).

op

propriété

public var op:TokenType

Type d'opérateur.

Retourne TokenType

operand

propriété

public var operand:NExpr

Expression de l'opérande.

Retourne NExpr

new

constructeur

public function new(id:NodeId, pos:Position, op:TokenType, operand:NExpr, ?leadingComments:Array<Comment>, ?trailingComments:Array<Comment>)

Crée un nouveau nœud d'opération unaire.

ParamètreTypeDescription
id NodeId
pos Position Position dans la source où cette opération apparaît
op TokenType Type d'opérateur unaire
operand NExpr Expression de l'opérande
leadingComments Array<Comment> Commentaires optionnels avant
trailingComments Array<Comment> Commentaires optionnels après l'opération

toJson

méthode

public override function toJson():Dynamic

Convertit l'opération unaire en représentation JSON.

Retourne Dynamic Objet dynamique contenant les données de l'opération

NTernary

classe

Représente une expression conditionnelle ternaire (condition ? trueExpr : falseExpr).

condition

propriété

public var condition:NExpr

L'expression de condition.

Retourne NExpr

trueExpr

propriété

public var trueExpr:NExpr

L'expression à évaluer si la condition est vraie.

Retourne NExpr

falseExpr

propriété

public var falseExpr:NExpr

L'expression à évaluer si la condition est fausse.

Retourne NExpr

new

constructeur

public function new(id:NodeId, pos:Position, condition:NExpr, trueExpr:NExpr, falseExpr:NExpr, ?leadingComments:Array<Comment>, ?trailingComments:Array<Comment>)

Crée un nouveau nœud d'expression ternaire.

ParamètreTypeDescription
id NodeId Identifiant du nœud
pos Position Position dans la source où cette expression apparaît
condition NExpr L'expression de condition
trueExpr NExpr Expression évaluée quand la condition est vraie
falseExpr NExpr Expression évaluée quand la condition est fausse
leadingComments Array<Comment> Commentaires optionnels avant
trailingComments Array<Comment> Commentaires optionnels après l'expression

toJson

méthode

public override function toJson():Dynamic

Convertit l'expression ternaire en représentation JSON.

Retourne Dynamic Objet dynamique contenant les données du ternaire

NImportStatement

classe

Représente une instruction d'import

path

propriété

public var path:NStringLiteral

Le chemin relatif du fichier à importer

Retourne NStringLiteral

script

propriété

public var script:Script

L'AST importé

Retourne Script

new

constructeur

public function new(id:NodeId, pos:Position, path:NStringLiteral, script:Script, ?leadingComments:Array<Comment>, ?trailingComments:Array<Comment>)

Crée un nouveau nœud d'instruction d'import.

ParamètreTypeDescription
id NodeId
pos Position Position dans la source où cet import apparaît
path NStringLiteral Le chemin relatif du fichier à importer
script Script L'AST importé
leadingComments Array<Comment> Commentaires optionnels avant
trailingComments Array<Comment> Commentaires optionnels après l'opération

Générée depuis Loreline v0.10.0.