I would like to understand the Nemerle base language and compiler
architecture. I found this document, are there any others on these
subjects?
https://github.com/rsdn/nemerle/wiki/Nemerle-language-%28part-6%29
This document states: "the compiler actually parses a more abstract
language than is specified by the syntax of Nemerle. For example,
imagine the compiler parsing references to a certain type. What it
actually does is not parsing the syntax of a reference but rather the
syntax of a Nemerle’s expression. Later, when the compiler begins
typing the obtained AST (the abstract syntax tree), it will check
whether the parsed expression matches the type of the reference and
will report an error if it does not."
I don't understand. Could someone explain by way of example?
Also, what is the parsing model of Nemerle--what parts is the parser
divided into? Could I see a dataflow diagram? Can the parser
"understand" Nemerle code to some extent when some of the references
are missing (e.g. missing macro DLL), or does it fail completely? For
example, presumably lexical analysis still works even without macro
DLLs; can the parser still do anything else?
P.S. Who is still working on Nemerle? (I asked Michal Moskal--he and
Kamil Skalski are no longer working on Nemerle.) Who was hired by
JetBrains?
Thanks!