UNPKG

@bscotch/gml-parser

Version:

A parser for GML (GameMaker Language) files for programmatic manipulation and analysis of GameMaker projects.

131 lines 3.65 kB
const signifierFlags = { Readable: 1 << 0, Writable: 1 << 1, ReadWrite: (1 << 0) | (1 << 1), Instance: 1 << 2, Deprecated: 1 << 3, Static: 1 << 4, Local: 1 << 5, Global: 1 << 6, Parameter: 1 << 7, Optional: 1 << 8, Macro: 1 << 9, // Is a macro Asset: 1 << 10, // Is an asset Mixin: 1 << 11, // Is a mixin Override: 1 << 12, // Is an override for a parent variable Definitive: 1 << 13, // Is a definitive variable (defined in a definitiveSelf, such as a constructor or Create event) Enum: 1 << 14, // Is an enum EnumMember: 1 << 15, // Is an enum member }; export class Flags { flags = signifierFlags.ReadWrite; setFlag(flag, value) { if (value) { this.flags |= flag; } else { this.flags &= ~flag; } } getFlag(flag) { return !!(this.flags & flag); } get override() { return this.getFlag(signifierFlags.Override); } set override(override) { this.setFlag(signifierFlags.Override, override); } get definitive() { return this.getFlag(signifierFlags.Definitive); } set definitive(definitive) { this.setFlag(signifierFlags.Definitive, definitive); } get asset() { return this.getFlag(signifierFlags.Asset); } set asset(asset) { this.setFlag(signifierFlags.Asset, asset); } get macro() { return this.getFlag(signifierFlags.Macro); } set macro(macro) { this.setFlag(signifierFlags.Macro, macro); } get optional() { return this.getFlag(signifierFlags.Optional); } set optional(optional) { this.setFlag(signifierFlags.Optional, optional); } get instance() { return this.getFlag(signifierFlags.Instance); } set instance(instance) { this.setFlag(signifierFlags.Instance, instance); } get static() { return this.getFlag(signifierFlags.Static); } set static(static_) { this.setFlag(signifierFlags.Static, static_); } get local() { return this.getFlag(signifierFlags.Local); } set local(local) { this.setFlag(signifierFlags.Local, local); } get global() { return this.getFlag(signifierFlags.Global); } set global(global) { this.setFlag(signifierFlags.Global, global); } get parameter() { return this.getFlag(signifierFlags.Parameter); } set parameter(parameter) { this.setFlag(signifierFlags.Parameter, parameter); } get writable() { return this.getFlag(signifierFlags.Writable); } set writable(writable) { this.setFlag(signifierFlags.Writable, writable); } get readable() { return this.getFlag(signifierFlags.Readable); } get deprecated() { return this.getFlag(signifierFlags.Deprecated); } set deprecated(deprecated) { this.setFlag(signifierFlags.Deprecated, deprecated); } get mixin() { return this.getFlag(signifierFlags.Mixin); } set mixin(mixin) { this.setFlag(signifierFlags.Mixin, mixin); } get enum() { return this.getFlag(signifierFlags.Enum); } set enum(isEnum) { this.setFlag(signifierFlags.Enum, isEnum); } get enumMember() { return this.getFlag(signifierFlags.EnumMember); } set enumMember(enumMember) { this.setFlag(signifierFlags.EnumMember, enumMember); } deprecate(deprecated = true) { this.deprecated = deprecated; return this; } } //# sourceMappingURL=signifiers.flags.js.map