kittenipc/kitcom/internal/tsgo/ast/modifierflags.go
2025-11-08 09:37:30 +03:00

54 lines
4.4 KiB
Go

package ast
type ModifierFlags uint32
const (
ModifierFlagsNone ModifierFlags = 0
// Syntactic/JSDoc modifiers
ModifierFlagsPublic ModifierFlags = 1 << 0 // Property/Method
ModifierFlagsPrivate ModifierFlags = 1 << 1 // Property/Method
ModifierFlagsProtected ModifierFlags = 1 << 2 // Property/Method
ModifierFlagsReadonly ModifierFlags = 1 << 3 // Property/Method
ModifierFlagsOverride ModifierFlags = 1 << 4 // Override method
// Syntactic-only modifiers
ModifierFlagsExport ModifierFlags = 1 << 5 // Declarations
ModifierFlagsAbstract ModifierFlags = 1 << 6 // Class/Method/ConstructSignature
ModifierFlagsAmbient ModifierFlags = 1 << 7 // Declarations (declare keyword)
ModifierFlagsStatic ModifierFlags = 1 << 8 // Property/Method
ModifierFlagsAccessor ModifierFlags = 1 << 9 // Property
ModifierFlagsAsync ModifierFlags = 1 << 10 // Property/Method/Function
ModifierFlagsDefault ModifierFlags = 1 << 11 // Function/Class (export default declaration)
ModifierFlagsConst ModifierFlags = 1 << 12 // Const enum
ModifierFlagsIn ModifierFlags = 1 << 13 // Contravariance modifier
ModifierFlagsOut ModifierFlags = 1 << 14 // Covariance modifier
ModifierFlagsDecorator ModifierFlags = 1 << 15 // Contains a decorator
// JSDoc-only modifiers
ModifierFlagsDeprecated ModifierFlags = 1 << 16 // Deprecated tag
// Cache-only JSDoc-modifiers. Should match order of Syntactic/JSDoc modifiers, above.
ModifierFlagsJSDocPublic ModifierFlags = 1 << 23 // if this value changes, `selectEffectiveModifierFlags` must change accordingly
ModifierFlagsJSDocPrivate ModifierFlags = 1 << 24
ModifierFlagsJSDocProtected ModifierFlags = 1 << 25
ModifierFlagsJSDocReadonly ModifierFlags = 1 << 26
ModifierFlagsJSDocOverride ModifierFlags = 1 << 27
ModifierFlagsHasComputedJSDocModifiers ModifierFlags = 1 << 28 // Indicates the computed modifier flags include modifiers from JSDoc.
ModifierFlagsHasComputedFlags ModifierFlags = 1 << 29 // Modifier flags have been computed
ModifierFlagsSyntacticOrJSDocModifiers = ModifierFlagsPublic | ModifierFlagsPrivate | ModifierFlagsProtected | ModifierFlagsReadonly | ModifierFlagsOverride
ModifierFlagsSyntacticOnlyModifiers = ModifierFlagsExport | ModifierFlagsAmbient | ModifierFlagsAbstract | ModifierFlagsStatic | ModifierFlagsAccessor | ModifierFlagsAsync | ModifierFlagsDefault | ModifierFlagsConst | ModifierFlagsIn | ModifierFlagsOut | ModifierFlagsDecorator
ModifierFlagsSyntacticModifiers = ModifierFlagsSyntacticOrJSDocModifiers | ModifierFlagsSyntacticOnlyModifiers
ModifierFlagsJSDocCacheOnlyModifiers = ModifierFlagsJSDocPublic | ModifierFlagsJSDocPrivate | ModifierFlagsJSDocProtected | ModifierFlagsJSDocReadonly | ModifierFlagsJSDocOverride
ModifierFlagsJSDocOnlyModifiers = ModifierFlagsDeprecated
ModifierFlagsNonCacheOnlyModifiers = ModifierFlagsSyntacticOrJSDocModifiers | ModifierFlagsSyntacticOnlyModifiers | ModifierFlagsJSDocOnlyModifiers
ModifierFlagsAccessibilityModifier = ModifierFlagsPublic | ModifierFlagsPrivate | ModifierFlagsProtected
// Accessibility modifiers and 'readonly' can be attached to a parameter in a constructor to make it a property.
ModifierFlagsParameterPropertyModifier = ModifierFlagsAccessibilityModifier | ModifierFlagsReadonly | ModifierFlagsOverride
ModifierFlagsNonPublicAccessibilityModifier = ModifierFlagsPrivate | ModifierFlagsProtected
ModifierFlagsTypeScriptModifier = ModifierFlagsAmbient | ModifierFlagsPublic | ModifierFlagsPrivate | ModifierFlagsProtected | ModifierFlagsReadonly | ModifierFlagsAbstract | ModifierFlagsConst | ModifierFlagsOverride | ModifierFlagsIn | ModifierFlagsOut
ModifierFlagsExportDefault = ModifierFlagsExport | ModifierFlagsDefault
ModifierFlagsAll = ModifierFlagsExport | ModifierFlagsAmbient | ModifierFlagsPublic | ModifierFlagsPrivate | ModifierFlagsProtected | ModifierFlagsStatic | ModifierFlagsReadonly | ModifierFlagsAbstract | ModifierFlagsAccessor | ModifierFlagsAsync | ModifierFlagsDefault | ModifierFlagsConst | ModifierFlagsDeprecated | ModifierFlagsOverride | ModifierFlagsIn | ModifierFlagsOut | ModifierFlagsDecorator
ModifierFlagsModifier = ModifierFlagsAll & ^ModifierFlagsDecorator
ModifierFlagsJavaScript = ModifierFlagsExport | ModifierFlagsStatic | ModifierFlagsAccessor | ModifierFlagsAsync | ModifierFlagsDefault
)