Categorygithub.com/jig/scanner
modulepackage
1.2.0
Repository: https://github.com/jig/scanner.git
Documentation: pkg.go.dev

# README

jig/scanner

Lisp lexer (scanner) implemented in GO used by jig/lisp and jig/tinylisp

Code adapted from the Go text/scanner standard package, and mostly compatible with it (beside the fact this is for Lisp and that is for Go syntax).

Major differences:

  • identifier allowed characters is more expansive than Go is (e.g. +, -, *host-name*, or <= are valid identifiers)
  • negative integers or negative floats are supported as a single token (of type Int or Float respectively)
  • character tokens are not supported anymore (e.g. 'A') as ' is used as synonym of quote
  • parsing errors are not printed to os.Stdout by default
  • raw strings in jig/lisp are quoted with ¬ character (instead of `) as ` is used as synonym of quasiquote. Raw strings might include ¬ by doublind them ¬¬
  • #{ is specially handled to support Lisp set literals
  • ~, @ and ~@ are specially handled to support them as synonyms of unquote, deref and splice-unquote respectively
  • support of Lisp keywords (e.g. :key) as a single token of type Keyword

Documentation

See pkg.go.dev/jig/scanner

# Functions

TokenString returns a printable string for a token or Unicode character.

# Constants

The result of Scan is one of these tokens or a Unicode character.
The result of Scan is one of these tokens or a Unicode character.
The result of Scan is one of these tokens or a Unicode character.
The result of Scan is one of these tokens or a Unicode character.
The result of Scan is one of these tokens or a Unicode character.
The result of Scan is one of these tokens or a Unicode character.
Predefined mode bits to control recognition of tokens.
LispWhitespace is the default value for the Scanner's Whitespace field.
The result of Scan is one of these tokens or a Unicode character.
Predefined mode bits to control recognition of tokens.
includes Ints and hexadecimal floats.
Predefined mode bits to control recognition of tokens.
Predefined mode bits to control recognition of tokens.
Predefined mode bits to control recognition of tokens.
Predefined mode bits to control recognition of tokens.
Predefined mode bits to control recognition of tokens.
if set with ScanComments, comments become white space.
The result of Scan is one of these tokens or a Unicode character.

# Structs

Position is a value that represents a source position.
A Scanner implements reading of Unicode characters and tokens from an io.Reader.