Locator
.Locator
.
Locator
.
core :: union_find
union–find algorithm using an efficient disjoint-set data structuresax :: sax_locator
Interface for associating a SAX event with a document location.
# Provides an optional convenience implementation of `Locator`.
module sax::helpers::sax_locator_impl
import sax::sax_locator
# Provides an optional convenience implementation of `Locator`.
#
# This class is available mainly for application writers, who
# can use it to make a persistent snapshot of a locator at any
# point during a document parse:
#
# ~~~nitish
# import sax::helpers::sax_locator_impl
# import sax::content_handler
#
# class Example super ContentHandler
# private var locator: SAXLocator
# private var start_loc: nullable SAXLocator = null
#
# redef fun start_document do
# # save the location of the start of the document
# # for future use.
# start_loc = new SAXLocatorImpl.from(locator)
# end
# end
# ~~~
#
# Normally, parser writers will not use this class, since it
# is more efficient to provide location information only when
# requested, rather than constantly updating a `Locator` object.
#
# Note: The original source code and documentation of this class comes, in part,
# from [SAX 2.0](http://www.saxproject.org).
class SAXLocatorImpl super SAXLocator
redef var public_id = null is writable
redef var system_id = null is writable
redef var line_number = -1 is writable
redef var column_number = -1 is writable
# Zero-argument constructor.
#
# This will not normally be useful, since the main purpose
# of this class is to make a snapshot of an existing Locator.
init do
end
# Copy constructor.
#
# Create a persistent copy of the current state of a locator.
# When the original locator changes, this copy will still keep
# the original values (and it can be used outside the scope of
# `ContentHandler` methods).
#
# Parameters:
#
# * `locator`: locator to copy.
init from(locator: SAXLocator) do
public_id = locator.public_id
system_id = locator.system_id
line_number = locator.line_number
column_number = locator.column_number
end
end
lib/sax/helpers/sax_locator_impl.nit:11,1--73,3