token

package
v0.11.1 Latest Latest
Warning

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

Go to latest
Published: Dec 3, 2025 License: MIT Imports: 1 Imported by: 0

Documentation

Overview

Package token provides the token types and structures for the VHS Tape language.

Index

Constants

View Source
const (
	AT        = "@"
	EQUAL     = "="
	PLUS      = "+"
	PERCENT   = "%"
	SLASH     = "/"
	BACKSLASH = "\\"
	DOT       = "."
	DASH      = "-"

	MINUS         = "-"
	RIGHT_BRACKET = "]" //nolint:revive
	LEFT_BRACKET  = "[" //nolint:revive
	CARET         = "^"

	EM           = "EM"
	MILLISECONDS = "MILLISECONDS"
	MINUTES      = "MINUTES"
	PX           = "PX"
	SECONDS      = "SECONDS"

	EOF     = "EOF"
	ILLEGAL = "ILLEGAL"

	ALT       = "ALT"
	BACKSPACE = "BACKSPACE"
	CTRL      = "CTRL"
	DELETE    = "DELETE"
	END       = "END"
	ENTER     = "ENTER"
	ESCAPE    = "ESCAPE"
	HOME      = "HOME"
	INSERT    = "INSERT"
	PAGE_DOWN = "PAGE_DOWN" //nolint:revive
	PAGE_UP   = "PAGE_UP"   //nolint:revive
	SLEEP     = "SLEEP"
	SPACE     = "SPACE"
	TAB       = "TAB"
	SHIFT     = "SHIFT"

	COMMENT = "COMMENT"
	NUMBER  = "NUMBER"
	STRING  = "STRING"
	JSON    = "JSON"
	REGEX   = "REGEX"
	BOOLEAN = "BOOLEAN"

	DOWN  = "DOWN"
	LEFT  = "LEFT"
	RIGHT = "RIGHT"
	UP    = "UP"

	HIDE                   = "HIDE"
	OUTPUT                 = "OUTPUT"
	REQUIRE                = "REQUIRE"
	SET                    = "SET"
	SHOW                   = "SHOW"
	SOURCE                 = "SOURCE"
	TYPE                   = "TYPE"
	SCREENSHOT             = "SCREENSHOT"
	COPY                   = "COPY"
	PASTE                  = "PASTE"
	SHELL                  = "SHELL"
	ENV                    = "ENV"
	FONT_FAMILY            = "FONT_FAMILY" //nolint:revive
	FONT_SIZE              = "FONT_SIZE"   //nolint:revive
	FRAMERATE              = "FRAMERATE"
	PLAYBACK_SPEED         = "PLAYBACK_SPEED" //nolint:revive
	HEIGHT                 = "HEIGHT"
	WIDTH                  = "WIDTH"
	LETTER_SPACING         = "LETTER_SPACING" //nolint:revive
	LINE_HEIGHT            = "LINE_HEIGHT"    //nolint:revive
	TYPING_SPEED           = "TYPING_SPEED"   //nolint:revive
	PADDING                = "PADDING"
	THEME                  = "THEME"
	LOOP_OFFSET            = "LOOP_OFFSET"            //nolint:revive
	MARGIN_FILL            = "MARGIN_FILL"            //nolint:revive
	MARGIN                 = "MARGIN"                 //nolint:revive
	WINDOW_BAR             = "WINDOW_BAR"             //nolint:revive
	WINDOW_BAR_SIZE        = "WINDOW_BAR_SIZE"        //nolint:revive
	WINDOW_BAR_TITLE       = "WINDOW_BAR_TITLE"       //nolint:revive
	WINDOW_BAR_FONT_FAMILY = "WINDOW_BAR_FONT_FAMILY" //nolint:revive
	WINDOW_BAR_FONT_SIZE   = "WINDOW_BAR_FONT_SIZE"   //nolint:revive
	BORDER_RADIUS          = "CORNER_RADIUS"          //nolint:revive
	WAIT                   = "WAIT"                   //nolint:revive
	WAIT_TIMEOUT           = "WAIT_TIMEOUT"           //nolint:revive
	WAIT_PATTERN           = "WAIT_PATTERN"           //nolint:revive
	CURSOR_BLINK           = "CURSOR_BLINK"           //nolint:revive
)

Tokens for the VHS language.

Variables

View Source
var Keywords = map[string]Type{
	"em":                  EM,
	"px":                  PX,
	"ms":                  MILLISECONDS,
	"s":                   SECONDS,
	"m":                   MINUTES,
	"Set":                 SET,
	"Sleep":               SLEEP,
	"Type":                TYPE,
	"Enter":               ENTER,
	"Space":               SPACE,
	"Backspace":           BACKSPACE,
	"Delete":              DELETE,
	"Insert":              INSERT,
	"Ctrl":                CTRL,
	"Alt":                 ALT,
	"Shift":               SHIFT,
	"Down":                DOWN,
	"Left":                LEFT,
	"Right":               RIGHT,
	"Up":                  UP,
	"PageUp":              PAGE_UP,
	"PageDown":            PAGE_DOWN,
	"Tab":                 TAB,
	"Escape":              ESCAPE,
	"End":                 END,
	"Hide":                HIDE,
	"Require":             REQUIRE,
	"Show":                SHOW,
	"Output":              OUTPUT,
	"Shell":               SHELL,
	"FontFamily":          FONT_FAMILY,
	"MarginFill":          MARGIN_FILL,
	"Margin":              MARGIN,
	"WindowBar":           WINDOW_BAR,
	"WindowBarSize":       WINDOW_BAR_SIZE,
	"WindowBarTitle":      WINDOW_BAR_TITLE,
	"WindowBarFontFamily": WINDOW_BAR_FONT_FAMILY,
	"WindowBarFontSize":   WINDOW_BAR_FONT_SIZE,
	"BorderRadius":        BORDER_RADIUS,
	"FontSize":            FONT_SIZE,
	"Framerate":           FRAMERATE,
	"Height":              HEIGHT,
	"LetterSpacing":       LETTER_SPACING,
	"LineHeight":          LINE_HEIGHT,
	"PlaybackSpeed":       PLAYBACK_SPEED,
	"TypingSpeed":         TYPING_SPEED,
	"Padding":             PADDING,
	"Theme":               THEME,
	"Width":               WIDTH,
	"LoopOffset":          LOOP_OFFSET,
	"WaitTimeout":         WAIT_TIMEOUT,
	"WaitPattern":         WAIT_PATTERN,
	"Wait":                WAIT,
	"Source":              SOURCE,
	"CursorBlink":         CURSOR_BLINK,
	"true":                BOOLEAN,
	"false":               BOOLEAN,
	"Screenshot":          SCREENSHOT,
	"Copy":                COPY,
	"Paste":               PASTE,
	"Env":                 ENV,
}

Keywords maps keyword strings to tokens.

Functions

func IsCommand

func IsCommand(t Type) bool

IsCommand returns whether the string is a command.

func IsModifier

func IsModifier(t Type) bool

IsModifier returns whether the token is a modifier.

func IsSetting

func IsSetting(t Type) bool

IsSetting returns whether a token is a setting.

func ToCamel

func ToCamel(s string) string

ToCamel converts a snake_case string to CamelCase.

Types

type Token

type Token struct {
	Type    Type
	Literal string
	Line    int
	Column  int
}

Token represents a lexer token.

type Type

type Type string

Type represents a token's type.

func LookupIdentifier

func LookupIdentifier(ident string) Type

LookupIdentifier returns whether the identifier is a keyword. In `vhs`, there are no _actual_ identifiers, i.e. there are no variables. Instead, identifiers are simply strings (i.e. bare words).

func (Type) String

func (t Type) String() string

String converts a token to it's human readable string format.

Jump to

Keyboard shortcuts

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