Skip to content

JunoLab/LNR.jl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LNR

LNR.jl implements a LineNumberingReader type which transparently wraps any other reader (::IO). It's intended for working with hand written text where line and column information is significant, and provides functions for working with this information.

LineNumberingReaders can be created with either an IO object or a string as a parameter.

The Cursor type, which has the line and column fields, represents a position between two characters (and not the character itself). So Cursor(n, m) represents the position just before the mth character on line n. Comparisons are supported.

The cursor function gives the current position in the stream as a cursor. seek can be called as usual, but with a Cursor instead of an integer, to set the reader at any position in the file.

Other than that, standard IO functions are wrapped, so you can use a line reader as you would any other stream.