Property definitions

sax $ SAXLocatorImpl :: defaultinit
# 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:16,1--73,3