///|
/// Core AST node types and structures
// Span represents a span in source text
pub struct Span {
start : Int
end : Int
line : Int
column : Int
end_line : Int
end_column : Int
} derive(Eq)
///|
pub fn Span::with_line_info(
start : Int,
end : Int,
line : Int,
column : Int,
end_line : Int,
end_column : Int,
) -> Span {
{ start, end, line, column, end_line, end_column }
}
///|
pub impl Show for Span with to_string(self) {
"\{self.line}:\{self.column}-\{self.end_line}:\{self.end_column}(\{self.start}-\{self.end})"
}
///|
pub impl Show for Span with output(self, logger) {
logger.write_string(self.to_string())
}