/*!
* Copyright (C) 2017 Glayzzle (BSD3 License)
* @authors https://github.com/glayzzle/php-parser/graphs/contributors
* @url http://glayzzle.com
*/
var Declaration = require('./declaration');
var KIND = 'class';
/**
* A class definition
* @constructor Class
* @extends {Declaration}
* @property {Identifier|null} extends
* @property {Identifier[]} implements
* @property {Declaration[]} body
* @property {boolean} isAnonymous
* @property {boolean} isAbstract
* @property {boolean} isFinal
*/
var Class = Declaration.extends(function Class(name, ext, impl, body, flags, location) {
Declaration.apply(this, [KIND, name, location]);
this.isAnonymous = name ? false : true;
this.extends = ext;
this.implements = impl;
this.body = body;
this.parseFlags(flags);
});
module.exports = Class;
|