token

package
v0.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 19, 2019 License: Apache-2.0 Imports: 2 Imported by: 0

Documentation

Index

Constants

View Source
const (
	IDInvalid   = ID(0)
	IDSemicolon = ID(0x01)

	IDOpenParen   = ID(0x02)
	IDOpenBracket = ID(0x03)
	IDOpenCurly   = ID(0x04)

	IDCloseParen   = ID(0x05)
	IDCloseBracket = ID(0x06)
	IDCloseCurly   = ID(0x07)

	IDDot      = ID(0x08)
	IDDotDot   = ID(0x09)
	IDDotDotEq = ID(0x0A)
	IDComma    = ID(0x0B)
	IDExclam   = ID(0x0C)
	IDQuestion = ID(0x0D)
	IDColon    = ID(0x0E)
)
View Source
const (
	IDPlusEq    = ID(0x10)
	IDMinusEq   = ID(0x11)
	IDStarEq    = ID(0x12)
	IDSlashEq   = ID(0x13)
	IDShiftLEq  = ID(0x14)
	IDShiftREq  = ID(0x15)
	IDAmpEq     = ID(0x16)
	IDPipeEq    = ID(0x17)
	IDHatEq     = ID(0x18)
	IDPercentEq = ID(0x19)

	IDTildeModPlusEq   = ID(0x20)
	IDTildeModMinusEq  = ID(0x21)
	IDTildeModStarEq   = ID(0x22)
	IDTildeModShiftLEq = ID(0x24)

	IDTildeSatPlusEq  = ID(0x28)
	IDTildeSatMinusEq = ID(0x29)

	IDEq         = ID(0x2E)
	IDEqQuestion = ID(0x2F)
)
View Source
const (
	IDPlus    = ID(0x30)
	IDMinus   = ID(0x31)
	IDStar    = ID(0x32)
	IDSlash   = ID(0x33)
	IDShiftL  = ID(0x34)
	IDShiftR  = ID(0x35)
	IDAmp     = ID(0x36)
	IDPipe    = ID(0x37)
	IDHat     = ID(0x38)
	IDPercent = ID(0x39)

	IDTildeModPlus   = ID(0x40)
	IDTildeModMinus  = ID(0x41)
	IDTildeModStar   = ID(0x42)
	IDTildeModShiftL = ID(0x44)

	IDTildeSatPlus  = ID(0x48)
	IDTildeSatMinus = ID(0x49)

	IDNotEq       = ID(0x50)
	IDLessThan    = ID(0x51)
	IDLessEq      = ID(0x52)
	IDEqEq        = ID(0x53)
	IDGreaterEq   = ID(0x54)
	IDGreaterThan = ID(0x55)

	IDAnd = ID(0x58)
	IDOr  = ID(0x59)
	IDAs  = ID(0x5A)

	IDNot = ID(0x5F)

	IDXBinaryPlus    = ID(0x60)
	IDXBinaryMinus   = ID(0x61)
	IDXBinaryStar    = ID(0x62)
	IDXBinarySlash   = ID(0x63)
	IDXBinaryShiftL  = ID(0x64)
	IDXBinaryShiftR  = ID(0x65)
	IDXBinaryAmp     = ID(0x66)
	IDXBinaryPipe    = ID(0x67)
	IDXBinaryHat     = ID(0x68)
	IDXBinaryPercent = ID(0x69)

	IDXBinaryTildeModPlus   = ID(0x70)
	IDXBinaryTildeModMinus  = ID(0x71)
	IDXBinaryTildeModStar   = ID(0x72)
	IDXBinaryTildeModShiftL = ID(0x74)

	IDXBinaryTildeSatPlus  = ID(0x78)
	IDXBinaryTildeSatMinus = ID(0x79)

	IDXBinaryNotEq       = ID(0x80)
	IDXBinaryLessThan    = ID(0x81)
	IDXBinaryLessEq      = ID(0x82)
	IDXBinaryEqEq        = ID(0x83)
	IDXBinaryGreaterEq   = ID(0x84)
	IDXBinaryGreaterThan = ID(0x85)

	IDXBinaryAnd = ID(0x88)
	IDXBinaryOr  = ID(0x89)
	IDXBinaryAs  = ID(0x8A)

	IDXAssociativePlus = ID(0x90)
	IDXAssociativeStar = ID(0x91)
	IDXAssociativeAmp  = ID(0x92)
	IDXAssociativePipe = ID(0x93)
	IDXAssociativeHat  = ID(0x94)
	IDXAssociativeAnd  = ID(0x95)
	IDXAssociativeOr   = ID(0x96)

	IDXUnaryPlus  = ID(0x9C)
	IDXUnaryMinus = ID(0x9D)
	IDXUnaryNot   = ID(0x9F)
)
View Source
const (
	IDAssert   = ID(0xA0)
	IDBreak    = ID(0xA1)
	IDConst    = ID(0xA2)
	IDContinue = ID(0xA3)
	IDElse     = ID(0xA4)
	IDFunc     = ID(0xA5)
	IDIOBind   = ID(0xA6)
	IDIOLimit  = ID(0xA7)
	IDIf       = ID(0xA8)
	IDInv      = ID(0xA9)
	IDIterate  = ID(0xAA)
	IDPost     = ID(0xAB)
	IDPre      = ID(0xAC)
	IDPri      = ID(0xAD)
	IDPub      = ID(0xAE)
	IDReturn   = ID(0xAF)
	IDStruct   = ID(0xB0)
	IDUse      = ID(0xB1)
	IDVar      = ID(0xB2)
	IDVia      = ID(0xB3)
	IDWhile    = ID(0xB4)
	IDYield    = ID(0xB5)
)
View Source
const (
	IDArray = ID(0xC0)
	IDNptr  = ID(0xC1)
	IDPtr   = ID(0xC2)
	IDSlice = ID(0xC3)
	IDTable = ID(0xC4)
)
View Source
const (
	IDFalse   = ID(0xD0)
	IDTrue    = ID(0xD1)
	IDNothing = ID(0xD2)
	IDNullptr = ID(0xD3)
	IDOk      = ID(0xD4)

	ID0   = ID(0xE0)
	ID1   = ID(0xE1)
	ID2   = ID(0xE2)
	ID4   = ID(0xE3)
	ID8   = ID(0xE4)
	ID16  = ID(0xE5)
	ID32  = ID(0xE6)
	ID64  = ID(0xE7)
	ID128 = ID(0xE8)
	ID256 = ID(0xE9)
)
View Source
const (
	IDArgs             = ID(0x100)
	IDCoroutineResumed = ID(0x101)
	IDThis             = ID(0x102)

	IDT1      = ID(0x108)
	IDT2      = ID(0x109)
	IDDagger1 = ID(0x10A)
	IDDagger2 = ID(0x10B)

	IDQNullptr     = ID(0x10C)
	IDQPlaceholder = ID(0x10D)
	IDQTypeExpr    = ID(0x10E)

	// It is important that IDQIdeal is right next to the IDI8..IDU64 block.
	// See the ID.IsNumTypeOrIdeal method.
	IDQIdeal = ID(0x10F)

	IDI8  = ID(0x110)
	IDI16 = ID(0x111)
	IDI32 = ID(0x112)
	IDI64 = ID(0x113)
	IDU8  = ID(0x114)
	IDU16 = ID(0x115)
	IDU32 = ID(0x116)
	IDU64 = ID(0x117)

	IDBase          = ID(0x120)
	IDBool          = ID(0x121)
	IDEmptyIOReader = ID(0x122)
	IDEmptyIOWriter = ID(0x123)
	IDEmptyStruct   = ID(0x124)
	IDIOReader      = ID(0x125)
	IDIOWriter      = ID(0x126)
	IDStatus        = ID(0x127)
	IDUtility       = ID(0x128)

	IDRangeIEU32 = ID(0x130)
	IDRangeIIU32 = ID(0x131)
	IDRangeIEU64 = ID(0x132)
	IDRangeIIU64 = ID(0x133)
	IDRectIEU32  = ID(0x134)
	IDRectIIU32  = ID(0x135)

	IDFrameConfig   = ID(0x150)
	IDImageConfig   = ID(0x151)
	IDPixelBuffer   = ID(0x152)
	IDPixelConfig   = ID(0x153)
	IDPixelSwizzler = ID(0x154)

	IDDecodeFrameOptions = ID(0x158)

	IDCanUndoByte      = ID(0x160)
	IDCountSince       = ID(0x161)
	IDHistoryAvailable = ID(0x162)
	IDMark             = ID(0x163)
	IDPosition         = ID(0x164)
	IDSince            = ID(0x165)
	IDSkip             = ID(0x166)
	IDSkipFast         = ID(0x167)
	IDTake             = ID(0x168)

	IDCopyFromSlice        = ID(0x170)
	IDCopyNFromHistory     = ID(0x171)
	IDCopyNFromHistoryFast = ID(0x172)
	IDCopyNFromReader      = ID(0x173)
	IDCopyNFromSlice       = ID(0x174)

	IDUndoByte = ID(0x180)
	IDReadU8   = ID(0x181)

	IDReadU16BE = ID(0x182)
	IDReadU16LE = ID(0x183)

	IDReadU8AsU32    = ID(0x189)
	IDReadU16BEAsU32 = ID(0x18A)
	IDReadU16LEAsU32 = ID(0x18B)
	IDReadU24BEAsU32 = ID(0x18C)
	IDReadU24LEAsU32 = ID(0x18D)
	IDReadU32BE      = ID(0x18E)
	IDReadU32LE      = ID(0x18F)

	IDReadU8AsU64    = ID(0x191)
	IDReadU16BEAsU64 = ID(0x192)
	IDReadU16LEAsU64 = ID(0x193)
	IDReadU24BEAsU64 = ID(0x194)
	IDReadU24LEAsU64 = ID(0x195)
	IDReadU32BEAsU64 = ID(0x196)
	IDReadU32LEAsU64 = ID(0x197)
	IDReadU40BEAsU64 = ID(0x198)
	IDReadU40LEAsU64 = ID(0x199)
	IDReadU48BEAsU64 = ID(0x19A)
	IDReadU48LEAsU64 = ID(0x19B)
	IDReadU56BEAsU64 = ID(0x19C)
	IDReadU56LEAsU64 = ID(0x19D)
	IDReadU64BE      = ID(0x19E)
	IDReadU64LE      = ID(0x19F)

	IDPeekU8 = ID(0x1A1)

	IDPeekU16BE = ID(0x1A2)
	IDPeekU16LE = ID(0x1A3)

	IDPeekU8AsU32    = ID(0x1A9)
	IDPeekU16BEAsU32 = ID(0x1AA)
	IDPeekU16LEAsU32 = ID(0x1AB)
	IDPeekU24BEAsU32 = ID(0x1AC)
	IDPeekU24LEAsU32 = ID(0x1AD)
	IDPeekU32BE      = ID(0x1AE)
	IDPeekU32LE      = ID(0x1AF)

	IDPeekU8AsU64    = ID(0x1B1)
	IDPeekU16BEAsU64 = ID(0x1B2)
	IDPeekU16LEAsU64 = ID(0x1B3)
	IDPeekU24BEAsU64 = ID(0x1B4)
	IDPeekU24LEAsU64 = ID(0x1B5)
	IDPeekU32BEAsU64 = ID(0x1B6)
	IDPeekU32LEAsU64 = ID(0x1B7)
	IDPeekU40BEAsU64 = ID(0x1B8)
	IDPeekU40LEAsU64 = ID(0x1B9)
	IDPeekU48BEAsU64 = ID(0x1BA)
	IDPeekU48LEAsU64 = ID(0x1BB)
	IDPeekU56BEAsU64 = ID(0x1BC)
	IDPeekU56LEAsU64 = ID(0x1BD)
	IDPeekU64BE      = ID(0x1BE)
	IDPeekU64LE      = ID(0x1BF)

	IDWriteU8    = ID(0x1C1)
	IDWriteU16BE = ID(0x1C2)
	IDWriteU16LE = ID(0x1C3)
	IDWriteU24BE = ID(0x1C4)
	IDWriteU24LE = ID(0x1C5)
	IDWriteU32BE = ID(0x1C6)
	IDWriteU32LE = ID(0x1C7)
	IDWriteU40BE = ID(0x1C8)
	IDWriteU40LE = ID(0x1C9)
	IDWriteU48BE = ID(0x1CA)
	IDWriteU48LE = ID(0x1CB)
	IDWriteU56BE = ID(0x1CC)
	IDWriteU56LE = ID(0x1CD)
	IDWriteU64BE = ID(0x1CE)
	IDWriteU64LE = ID(0x1CF)

	IDWriteFastU8    = ID(0x1E1)
	IDWriteFastU16BE = ID(0x1E2)
	IDWriteFastU16LE = ID(0x1E3)
	IDWriteFastU24BE = ID(0x1E4)
	IDWriteFastU24LE = ID(0x1E5)
	IDWriteFastU32BE = ID(0x1E6)
	IDWriteFastU32LE = ID(0x1E7)
	IDWriteFastU40BE = ID(0x1E8)
	IDWriteFastU40LE = ID(0x1E9)
	IDWriteFastU48BE = ID(0x1EA)
	IDWriteFastU48LE = ID(0x1EB)
	IDWriteFastU56BE = ID(0x1EC)
	IDWriteFastU56LE = ID(0x1ED)
	IDWriteFastU64BE = ID(0x1EE)
	IDWriteFastU64LE = ID(0x1EF)

	IDInitialize = ID(0x200)
	IDReset      = ID(0x201)
	IDSet        = ID(0x202)
	IDUnroll     = ID(0x203)
	IDUpdate     = ID(0x204)

	IDHighBits = ID(0x220)
	IDLowBits  = ID(0x221)
	IDMax      = ID(0x222)
	IDMin      = ID(0x223)

	IDIsError      = ID(0x230)
	IDIsOK         = ID(0x231)
	IDIsSuspension = ID(0x232)

	IDAvailable = ID(0x240)
	IDHeight    = ID(0x241)
	IDLength    = ID(0x242)
	IDPrefix    = ID(0x243)
	IDRow       = ID(0x244)
	IDStride    = ID(0x245)
	IDSuffix    = ID(0x246)
	IDWidth     = ID(0x247)
	IDIO        = ID(0x248)
	IDLimit     = ID(0x249)
	IDData      = ID(0x24A)
)
View Source
const MaxIntBits = 64

MaxIntBits is the largest size (in bits) of the i8, u8, i16, u16, etc. integer types.

Variables

This section is empty.

Functions

func Unescape

func Unescape(s string) (unescaped string, ok bool)

Types

type ID

type ID uint32

ID is a token type. Every identifier (in the programming language sense), keyword, operator and literal has its own ID.

Some IDs are built-in: the "func" keyword always has the same numerical ID value. Others are mapped at runtime. For example, the ID value for the "foobar" identifier (e.g. a variable name) is looked up in a Map.

func (ID) AmbiguousForm

func (x ID) AmbiguousForm() ID

func (ID) AssociativeForm

func (x ID) AssociativeForm() ID

func (ID) BinaryForm

func (x ID) BinaryForm() ID

func (ID) IsAssign

func (x ID) IsAssign() bool

func (ID) IsAssociativeOp

func (x ID) IsAssociativeOp() bool

func (ID) IsBinaryOp

func (x ID) IsBinaryOp() bool

func (ID) IsBuiltIn

func (x ID) IsBuiltIn() bool

func (ID) IsCannotAssignTo added in v0.2.0

func (x ID) IsCannotAssignTo() bool

func (ID) IsClose

func (x ID) IsClose() bool

func (ID) IsIdent

func (x ID) IsIdent(m *Map) bool

func (ID) IsImplicitSemicolon

func (x ID) IsImplicitSemicolon(m *Map) bool

func (ID) IsKeyword added in v0.2.0

func (x ID) IsKeyword() bool

func (ID) IsLiteral

func (x ID) IsLiteral(m *Map) bool

func (ID) IsNumLiteral

func (x ID) IsNumLiteral(m *Map) bool

func (ID) IsNumType

func (x ID) IsNumType() bool

func (ID) IsNumTypeOrIdeal added in v0.2.0

func (x ID) IsNumTypeOrIdeal() bool

func (ID) IsOpen

func (x ID) IsOpen() bool

func (ID) IsStrLiteral

func (x ID) IsStrLiteral(m *Map) bool

func (ID) IsTightLeft

func (x ID) IsTightLeft() bool

func (ID) IsTightRight

func (x ID) IsTightRight() bool

func (ID) IsUnaryOp

func (x ID) IsUnaryOp() bool

func (ID) IsXAssociativeOp

func (x ID) IsXAssociativeOp() bool

func (ID) IsXBinaryOp

func (x ID) IsXBinaryOp() bool

func (ID) IsXOp added in v0.2.0

func (x ID) IsXOp() bool

func (ID) IsXUnaryOp

func (x ID) IsXUnaryOp() bool

func (ID) SmallPowerOf2Value added in v0.2.0

func (x ID) SmallPowerOf2Value() int

func (ID) Str added in v0.2.0

func (x ID) Str(m *Map) string

Str returns a string form of x.

func (ID) UnaryForm

func (x ID) UnaryForm() ID

type Map

type Map struct {
	// contains filtered or unexported fields
}

func (*Map) ByID

func (m *Map) ByID(x ID) string

func (*Map) ByName

func (m *Map) ByName(name string) ID

func (*Map) Insert

func (m *Map) Insert(name string) (ID, error)

type QID

type QID [2]ID

QID is a qualified ID, such as "foo.bar". QID[0] is "foo"'s ID and QID[1] is "bar"'s. QID[0] may be 0 for a plain "bar".

func (QID) IsZero added in v0.2.0

func (x QID) IsZero() bool

func (QID) Str added in v0.2.0

func (x QID) Str(m *Map) string

Str returns a string form of x.

type QQID added in v0.2.0

type QQID [3]ID

QQID is a double-qualified ID, such as "receiverPkg.receiverName.funcName".

func (QQID) IsZero added in v0.2.0

func (x QQID) IsZero() bool

func (QQID) Str added in v0.2.0

func (x QQID) Str(m *Map) string

Str returns a string form of x.

type Token

type Token struct {
	ID   ID
	Line uint32
}

Token combines an ID and the line number it was seen.

func Tokenize

func Tokenize(m *Map, filename string, src []byte) (tokens []Token, comments []string, retErr error)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL