using System;
using System.Collections.Generic;
namespace Sprache
{
///
/// Represents an input for parsing.
///
public interface IInput : IEquatable
{
///
/// Advances the input.
///
/// A new that is advanced.
/// The input is already at the end of the source.
IInput Advance();
///
/// Gets the whole source.
///
string Source { get; }
///
/// Gets the current .
///
char Current { get; }
///
/// Gets a value indicating whether the end of the source is reached.
///
bool AtEnd { get; }
///
/// Gets the current positon.
///
int Position { get; }
///
/// Gets the current line number.
///
int Line { get; }
///
/// Gets the current column.
///
int Column { get; }
///
/// Memos used by this input
///
IDictionary