next node: LexScanPrim,
prev node: Subsystem Lexical Scanning,
up to node: Subsystem Lexical Scanning


LexScanPosition

Positions in the input of the lexical scanner

Signature of LexScanPosition

List of Import References :
See BOOL
See Char
See DENOTATION
See Int
See Nat
See Option
See PrettyPrinter
See Real
See Seq
See String

SIGNATURE LexScanPosition

$Date: 2012-10-02 14:17:54 +0200 (Tue, 02 Oct 2012) $ ($Revision: 838 $)

IMPORT Nat           ONLY nat
       PrettyPrinter ONLY doc

TYPE position == position(row:nat,col:nat)
                 unknown

Selective update

FUN :=_row: position ** nat -> position
FUN :=_col: position ** nat -> position

First row, first column: position(1,1)

FUN origin: position

Advance row or column by 1 (advancing row resets column)

FUN advanceRow: position -> position
FUN advanceCol: position -> position

Advance row or column by n (advancing row resets column)

FUN advanceRow: nat ** position -> position
FUN advanceCol: nat ** position -> position

Adding or subtracting positions

FUN + : position ** position -> position
FUN - : position ** position -> position

Showing positions

FUN ` : position -> denotation
FUN pp: position -> doc


next node: LexScanPrim,
prev node: Subsystem Lexical Scanning,
up to node: Subsystem Lexical Scanning