@bscotch/gml-parser
Version:
A parser for GML (GameMaker Language) files for programmatic manipulation and analysis of GameMaker projects.
131 lines • 3.65 kB
JavaScript
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