Skip to content
This repository was archived by the owner on Mar 29, 2023. It is now read-only.

Commit a639845

Browse files
committed
glayzzle#188 - introducing the ExpressionStatement node
1 parent 3a3a440 commit a639845

File tree

3 files changed

+27
-1
lines changed

3 files changed

+27
-1
lines changed

src/ast.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -364,6 +364,7 @@ AST.prototype.prepare = function(kind, docs, parser) {
364364
require("./ast/eval"),
365365
require("./ast/exit"),
366366
require("./ast/expression"),
367+
require("./ast/expressionstatement"),
367368
require("./ast/for"),
368369
require("./ast/foreach"),
369370
require("./ast/function"),

src/ast/expressionstatement.js

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
/**
2+
* Copyright (C) 2018 Glayzzle (BSD3 License)
3+
* @authors https://github.com/glayzzle/php-parser/graphs/contributors
4+
* @url http://glayzzle.com
5+
*/
6+
"use strict";
7+
8+
const Statement = require("./statement");
9+
const KIND = "expressionstatement";
10+
11+
/**
12+
* Defines an expression based statement
13+
* @constructor ExpressionStatement
14+
* @extends {Statement}
15+
* @property {Expression} expression
16+
*/
17+
module.exports = Statement.extends(KIND, function ExpressionStatement(
18+
expr,
19+
docs,
20+
location
21+
) {
22+
Statement.apply(this, [KIND, docs, location]);
23+
this.expression = expr;
24+
});

src/parser/statement.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -381,9 +381,10 @@ module.exports = {
381381

382382
default:
383383
// default fallback expr
384+
let statement = this.node("expressionstatement");
384385
expr = this.read_expr();
385386
this.expectEndOfStatement(expr);
386-
return expr;
387+
return statement(expr);
387388
}
388389
},
389390
/**

0 commit comments

Comments
 (0)