parser: move stable content of `parser.nit` into `parser_work.nit

What is still generated is thus more minimal.

Signed-off-by: Jean Privat <jean@pryen.org>
parser: move stable content of `lexer.nit` into `lexer_work.nit

What is still generated is thus even more minimal.

Signed-off-by: Jean Privat <jean@pryen.org>
parser: add `SourceFile::first_token` and `SourceFile::last_token`

This helps to manipulate the token list.

Signed-off-by: Jean Privat <jean@pryen.org>
parser: add some basic tree services in ANode

* `ANode::root` to get the root node
* `ANode::common_parent` to get the smallest common parent of two nodes
* `ANode::depth` to get the distance beween root and self

Signed-off-by: Jean Privat <jean@pryen.org>
parser: `ANode::debug` outputs on stderr instead of stdin

Signed-off-by: Jean Privat <jean@pryen.org>
parser: add `Token::blank_before`

Signed-off-by: Jean Privat <jean@pryen.org>
parser: dot dotdot and dotdotdot are not operators

Signed-off-by: Jean Privat <jean@pryen.org>
src: new module astutil.nit

Signed-off-by: Jean Privat <jean@pryen.org>
tests: update highlight and cie because `.` is no more an operator

Signed-off-by: Jean Privat <jean@pryen.org>
Merge: more feature for the AST

New services for client of the AST who care about the real text representation of the code (eg. highlighter or pretty-printers).

A better nitlighter should follow once this is reviewed and accepted.

The two first commits move some code in new modules.
The folowing commits add some features and nitpickfixes
The last commit introduces a new module, `astutil`, that will be used by the new highlighter (instead of the current ugly double cursor mechanism).

The method `astutil::ANode::to_xml` is not that useful but presents an exemple of a basic implementation of the targeted clients.

Pull-Request: #473
Reviewed-by: Alexandre Terrasa <alexandre@moz-code.org>