@@ -259,7 +259,12 @@ export enum NodeType {
259
259
/**
260
260
* {@link SquareExpression }.
261
261
*/
262
- Square
262
+ Square ,
263
+
264
+ /**
265
+ * {@link IdentifierExpression }.
266
+ */
267
+ Identifier
263
268
}
264
269
265
270
/**
@@ -341,6 +346,17 @@ export interface StringExpression extends Expression {
341
346
value : string ;
342
347
}
343
348
349
+ /**
350
+ * An expression that represents an alphabetical identifier. Uses type {@link NodeType.Identifier}. Contains the name of something.
351
+ * @author efekos
352
+ * @version 1.0.0
353
+ * @since 0.0.2-alpha
354
+ */
355
+ export interface IdentifierExpression extends Expression {
356
+ type : NodeType . Identifier ;
357
+ name : string ;
358
+ }
359
+
344
360
/**
345
361
* An expression that represents multiple statements inside braces (`{}`). Uses type {@link NodeType.Brace}.
346
362
* @author efekos
@@ -395,7 +411,7 @@ export interface OperatorStatement extends Statement {
395
411
* @since 0.0.1-alpha
396
412
*/
397
413
export interface KeywordStatement extends Statement {
398
- word : string ;
414
+ word : IdentifierExpression ;
399
415
type : NodeType . Keyword ;
400
416
}
401
417
@@ -408,7 +424,7 @@ export interface KeywordStatement extends Statement {
408
424
*/
409
425
export interface ImportsStatement extends Statement {
410
426
type : NodeType . Imports ,
411
- formats : string [ ] ;
427
+ formats : IdentifierExpression [ ] ;
412
428
module : string ;
413
429
}
414
430
@@ -421,7 +437,7 @@ export interface ImportsStatement extends Statement {
421
437
*/
422
438
export interface CompileStatement extends Statement {
423
439
type : NodeType . Compile ,
424
- formats : string [ ] ,
440
+ formats : IdentifierExpression [ ] ,
425
441
body : Expression [ ] ;
426
442
}
427
443
@@ -434,7 +450,7 @@ export interface CompileStatement extends Statement {
434
450
*/
435
451
export interface RuleStatement extends Statement {
436
452
type : NodeType . Rule ;
437
- rule : string ;
453
+ rule : StringExpression ;
438
454
value : unknown ;
439
455
}
440
456
@@ -447,7 +463,7 @@ export interface RuleStatement extends Statement {
447
463
*/
448
464
export interface ImportStatement extends Statement {
449
465
type : NodeType . Import ,
450
- path : string ;
466
+ path : StringExpression ;
451
467
}
452
468
453
469
/**
@@ -459,7 +475,7 @@ export interface ImportStatement extends Statement {
459
475
*/
460
476
export interface FunctionStatement extends Statement {
461
477
type : NodeType . Function ,
462
- name : string ,
478
+ name : IdentifierExpression ,
463
479
arguments : string [ ] ;
464
480
body : Statement [ ] ;
465
481
}
@@ -473,7 +489,7 @@ export interface FunctionStatement extends Statement {
473
489
*/
474
490
export interface GlobalStatement extends Statement {
475
491
body : Statement [ ] ;
476
- name : string ;
492
+ name : IdentifierExpression ;
477
493
}
478
494
479
495
0 commit comments