lexer

package
v0.0.8 Latest Latest
Warning

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

Go to latest
Published: Jun 4, 2022 License: MIT Imports: 3 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var Tokens = [...]string{

	ILLEGAL:    "ILLEGAL",
	EOF:        "EOF",
	WHITESPACE: "WHITESPACE",

	IDENT:  "IDENT",
	STRING: "STRING",
	INT:    "INT",
	FLOAT:  "FLOAT",

	LBRACKET:  "[",
	RBRACKET:  "]",
	LBRACE:    "{",
	RBRACE:    "}",
	LPAREN:    "(",
	RPAREN:    ")",
	COLON:     ":",
	SEMICOLON: ";",
	DOT:       ".",
	COMMA:     ",",
	EQUALS:    "=",
	PLUS:      "+",
	MINUS:     "-",
	MUL:       "*",
	DIV:       "/",
	MOD:       "%",
	ARROW:     "->",
	AT:        "@",

	OPENQASM: "OPENQASM",
	INCLUDE:  "include",
	CONST:    "const",
	QUBIT:    "qubit",
	BIT:      "bit",
	RESET:    "reset",
	X:        "X",
	Y:        "Y",
	Z:        "Z",
	H:        "H",
	S:        "S",
	T:        "T",
	U:        "U",
	QFT:      "QFT",
	IQFT:     "IQFT",
	CMODEXP2: "CMODEXP2",
	MEASURE:  "measure",
	GATE:     "gate",
	PRINT:    "print",
	DEF:      "def",
	RETURN:   "return",
	CTRL:     "ctrl",
	NEGCTRL:  "negctrl",
	INV:      "inv",
	POW:      "pow",
	PI:       "pi",
	TAU:      "tau",
	EULER:    "euler",
}

Functions

func IsBasicLit

func IsBasicLit(token Token) bool

func IsBinaryOperator

func IsBinaryOperator(token Token) bool

func IsConst

func IsConst(token Token) bool

func IsModifiler

func IsModifiler(token Token) bool

Types

type Lexer

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

func New

func New(r io.Reader) *Lexer

func (*Lexer) Errors

func (l *Lexer) Errors() []error

func (*Lexer) Scan

func (l *Lexer) Scan() (Token, string)

func (*Lexer) Tokenize

func (l *Lexer) Tokenize() (Token, string)

func (*Lexer) TokenizeIgnore

func (l *Lexer) TokenizeIgnore(t ...Token) (Token, string)

type Token

type Token int
const (
	// Specials
	ILLEGAL Token = iota
	EOF
	WHITESPACE

	IDENT  // q
	STRING // "stdgates.qasm"
	INT    // 42
	FLOAT  // 1.23

	LBRACKET  // '['
	RBRACKET  // ']'
	LBRACE    // '{'
	RBRACE    // '}'
	LPAREN    // '('
	RPAREN    // ')'
	COLON     // ':'
	SEMICOLON // ';'
	DOT       // '.'
	COMMA     // ','
	EQUALS    // '='
	PLUS      // '+'
	MINUS     // '-'
	MUL       // '*'
	DIV       // '/'
	MOD       // '%'
	ARROW     // "->"
	AT        // '@'

	OPENQASM // OPENQASM
	INCLUDE  // include
	CONST    // const
	QUBIT    // qubit
	BIT      // bit
	RESET    // reset
	X        // X
	Y        // Y
	Z        // Z
	H        // H
	S        // S
	T        // T
	U        // U
	QFT      // QFT
	IQFT     // IQFT
	CMODEXP2 // CMODEXP2
	MEASURE  // measure
	GATE     // gate
	PRINT    // print
	DEF      // def
	RETURN   // return
	CTRL     // ctrl
	NEGCTRL  // negctrl
	INV      // inv
	POW      // pow
	PI       // pi
	TAU      // tau
	EULER    // euler

)

Jump to

Keyboard shortcuts

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