ps: github.com/llgcode/ps Index | Files

package ps

import "github.com/llgcode/ps"

Package ps

Arithmetic and Math Operators

Miscellaneous Operators

Operand Stack Manipulation Operators

Copyright 2009 The Go Authors. All rights reserved. Use of this source code is governed by a BSD-style license that can be found in the LICENSE file. postscript scanner derived form the scanner package of go sources

Index

Package Files

interpreter.go operators.go operators_array.go operators_conflict.go operators_control.go operators_dictionary.go operators_graphics.go operators_math.go operators_misc.go operators_relational.go operators_stack.go procedure.go scanner.go

Constants

const (
    ScanIdents     = 1 << -Ident
    ScanInts       = 1 << -Int
    ScanFloats     = 1 << -Float // includes Ints
    ScanChars      = 1 << -Char
    ScanStrings    = 1 << -String
    ScanRawStrings = 1 << -RawString
    ScanComments   = 1 << -Comment
    SkipComments   = 1 << -skipComment // if set with ScanComments, comments become white space
    GoTokens       = ScanIdents | ScanFloats | ScanChars | ScanStrings | ScanRawStrings | ScanComments | SkipComments
)

Predefined mode bits to control recognition of tokens. For instance, to configure a Scanner such that it only recognizes (Go) identifiers, integers, and skips comments, set the Scanner's Mode field to:

ScanIdents | ScanInts | SkipComments
const (
    EOF = -(iota + 1)
    Ident
    Int
    Float
    Char
    String
    RawString
    Comment
)

The result of Scan is one of the following tokens or a Unicode character.

const GoWhitespace = 1<<'\t' | 1<<'\n' | 1<<'\r' | 1<<' '

GoWhitespace is the default value for the Scanner's Whitespace field. Its value selects Go's white space characters.

func TokenString Uses

func TokenString(tok int) string

TokenString returns a (visible) string for a token or Unicode character.

type Dictionary Uses

type Dictionary map[string]Value

func NewDictionary Uses

func NewDictionary(prealloc int) Dictionary

type DictionaryStack Uses

type DictionaryStack []Dictionary

type Interpreter Uses

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

func NewInterpreter Uses

func NewInterpreter(gc draw2d.GraphicContext) *Interpreter

func (*Interpreter) ClearDictionaries Uses

func (interpreter *Interpreter) ClearDictionaries()

func (*Interpreter) ClearOperands Uses

func (interpreter *Interpreter) ClearOperands()

func (*Interpreter) Define Uses

func (interpreter *Interpreter) Define(name string, value Value)

func (*Interpreter) DictionaryStackSize Uses

func (interpreter *Interpreter) DictionaryStackSize() int

func (*Interpreter) Execute Uses

func (interpreter *Interpreter) Execute(reader io.Reader)

func (*Interpreter) ExecuteFile Uses

func (interpreter *Interpreter) ExecuteFile(filePath string) error

func (*Interpreter) FindValue Uses

func (interpreter *Interpreter) FindValue(name string) Value

func (*Interpreter) FindValueInDictionaries Uses

func (interpreter *Interpreter) FindValueInDictionaries(name string) (Value, Dictionary)

func (*Interpreter) Get Uses

func (interpreter *Interpreter) Get(index int) Value

func (*Interpreter) GetGraphicContext Uses

func (interpreter *Interpreter) GetGraphicContext() draw2d.GraphicContext

func (*Interpreter) GetValues Uses

func (interpreter *Interpreter) GetValues(n int) []Value

func (*Interpreter) OperandSize Uses

func (interpreter *Interpreter) OperandSize() int

func (*Interpreter) Peek Uses

func (interpreter *Interpreter) Peek() Value

func (*Interpreter) PeekDictionary Uses

func (interpreter *Interpreter) PeekDictionary() Dictionary

func (*Interpreter) Pop Uses

func (interpreter *Interpreter) Pop() Value

func (*Interpreter) PopArray Uses

func (interpreter *Interpreter) PopArray() []Value

func (*Interpreter) PopBoolean Uses

func (interpreter *Interpreter) PopBoolean() bool

func (*Interpreter) PopDictionary Uses

func (interpreter *Interpreter) PopDictionary() Dictionary

func (*Interpreter) PopFloat Uses

func (interpreter *Interpreter) PopFloat() float64

func (*Interpreter) PopInt Uses

func (interpreter *Interpreter) PopInt() int

func (*Interpreter) PopName Uses

func (interpreter *Interpreter) PopName() string

func (*Interpreter) PopOperator Uses

func (interpreter *Interpreter) PopOperator() Operator

func (*Interpreter) PopProcedureDefinition Uses

func (interpreter *Interpreter) PopProcedureDefinition() *ProcedureDefinition

func (*Interpreter) PopString Uses

func (interpreter *Interpreter) PopString() string

func (*Interpreter) PopValues Uses

func (interpreter *Interpreter) PopValues(n int) []Value

func (*Interpreter) Push Uses

func (interpreter *Interpreter) Push(operand Value)

func (*Interpreter) PushDictionary Uses

func (interpreter *Interpreter) PushDictionary(dictionary Dictionary)

func (*Interpreter) SetGraphicContext Uses

func (interpreter *Interpreter) SetGraphicContext(gc draw2d.GraphicContext)

func (*Interpreter) SystemDefine Uses

func (interpreter *Interpreter) SystemDefine(name string, value Value)

func (*Interpreter) SystemDictionary Uses

func (interpreter *Interpreter) SystemDictionary() Dictionary

func (*Interpreter) UserDictionary Uses

func (interpreter *Interpreter) UserDictionary() Dictionary

type Mark Uses

type Mark struct{}

Mark

type Operator Uses

type Operator interface {
    Execute(interpreter *Interpreter)
}

type OperatorFunc Uses

type OperatorFunc func(interpreter *Interpreter)

type Position Uses

type Position struct {
    Filename string // filename, if any
    Offset   int    // byte offset, starting at 0
    Line     int    // line number, starting at 1
    Column   int    // column number, starting at 0 (character count per line)
}

A source position is represented by a Position value. A position is valid if Line > 0.

func (*Position) IsValid Uses

func (pos *Position) IsValid() bool

IsValid returns true if the position is valid.

func (Position) String Uses

func (pos Position) String() string

type PrimitiveOperator Uses

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

func NewOperator Uses

func NewOperator(f OperatorFunc) *PrimitiveOperator

func (*PrimitiveOperator) Execute Uses

func (o *PrimitiveOperator) Execute(interpreter *Interpreter)

type Procedure Uses

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

func NewProcedure Uses

func NewProcedure(def *ProcedureDefinition) *Procedure

func (*Procedure) Execute Uses

func (p *Procedure) Execute(interpreter *Interpreter)

type ProcedureDefinition Uses

type ProcedureDefinition struct {
    Values []Value
}

func NewProcedureDefinition Uses

func NewProcedureDefinition() *ProcedureDefinition

func (*ProcedureDefinition) Add Uses

func (p *ProcedureDefinition) Add(value Value)

type Scanner Uses

type Scanner struct {

    // Error is called for each error encountered. If no Error
    // function is set, the error is reported to os.Stderr.
    Error func(s *Scanner, msg string)

    // ErrorCount is incremented by one for each error encountered.
    ErrorCount int

    // The Mode field controls which tokens are recognized. For instance,
    // to recognize Ints, set the ScanInts bit in Mode. The field may be
    // changed at any time.
    Mode uint

    // The Whitespace field controls which characters are recognized
    // as white space. To recognize a character ch <= ' ' as white space,
    // set the ch'th bit in Whitespace (the Scanner's behavior is undefined
    // for values ch > ' '). The field may be changed at any time.
    Whitespace uint64

    // Current token position. The Offset, Line, and Column fields
    // are set by Scan(); the Filename field is left untouched by the
    // Scanner.
    Position
    // contains filtered or unexported fields
}

A Scanner implements reading of Unicode characters and tokens from an io.Reader.

func (*Scanner) Init Uses

func (s *Scanner) Init(src io.Reader) *Scanner

Init initializes a Scanner with a new source and returns itself. Error is set to nil, ErrorCount is set to 0, Mode is set to GoTokens, and Whitespace is set to GoWhitespace.

func (*Scanner) Next Uses

func (s *Scanner) Next() rune

Next reads and returns the next Unicode character. It returns EOF at the end of the source. It reports a read error by calling s.Error, if set, or else prints an error message to os.Stderr. Next does not update the Scanner's Position field; use Pos() to get the current position.

func (*Scanner) Peek Uses

func (s *Scanner) Peek() rune

Peek returns the next Unicode character in the source without advancing the scanner. It returns EOF if the scanner's position is at the last character of the source.

func (*Scanner) Pos Uses

func (s *Scanner) Pos() Position

Position returns the current source position. If called before Next() or Scan(), it returns the position of the next Unicode character or token returned by these functions. If called afterwards, it returns the position immediately after the last character of the most recent token or character scanned.

func (*Scanner) Scan Uses

func (s *Scanner) Scan() int

Scan reads the next token or Unicode character from source and returns it. It only recognizes tokens t for which the respective Mode bit (1<<-t) is set. It returns EOF at the end of the source. It reports scanner errors (read and token errors) by calling s.Error, if set; otherwise it prints an error message to os.Stderr.

func (*Scanner) TokenText Uses

func (s *Scanner) TokenText() string

TokenText returns the string corresponding to the most recently scanned token. Valid after calling Scan().

type Value Uses

type Value interface{}

type ValueStack Uses

type ValueStack []Value

Package ps imports 12 packages (graph) and is imported by 34 packages. Updated 2016-07-17. Refresh now. Tools for package owners.