Added thoughts about general direction.
This commit is contained in:
parent
e1226642cd
commit
e5cd57414e
32
doc/jlp-notes
Normal file
32
doc/jlp-notes
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
Implement special-purpose Markdown processor. This way it can be intelligent
|
||||||
|
about connecting seperated doc-blocks that should be a unit, can process thing
|
||||||
|
like link references on a whole-document basis, and can be more intelligent
|
||||||
|
about indentation, line numbers for doc blocks.
|
||||||
|
|
||||||
|
Consider building up common, generic AST nodes for code parsers so that most of
|
||||||
|
the work of integrating a new language is already done in the common code,
|
||||||
|
leaving only the very specific behavior to be implemented. For starters:
|
||||||
|
|
||||||
|
CodeUnit
|
||||||
|
: Supports things like classes in OOP, modules, even files if that is a
|
||||||
|
common organizational unit for the language.
|
||||||
|
|
||||||
|
Callable
|
||||||
|
: Supports methods, functions, subroutines, closures, anything that takes
|
||||||
|
parameters and returns a value.
|
||||||
|
|
||||||
|
Structure
|
||||||
|
: May be a useful abstraction for pure data objects (Erlang record
|
||||||
|
definitions, C/C++ unions and structs, enums, etc.).
|
||||||
|
|
||||||
|
Make Directives completely configurable. Do not hard-code an enumeration of
|
||||||
|
possible values. Make the actual directive text just another field on the class.
|
||||||
|
This allows language-specific implementations to extend the built-in Directives
|
||||||
|
easily. It also has the benefit of allowing unknown or invalid directives
|
||||||
|
through the parser without causing the source file to fail to parse. This gives
|
||||||
|
us a better way to warn the user of unknown directives. To this end it may be
|
||||||
|
good to assemble a list of defined directives at runtime, but this would not
|
||||||
|
happen in the parser itself.
|
||||||
|
|
||||||
|
Add back the @doc directive to return to private implementation notes within a
|
||||||
|
block that has so far been marked public with an @api directive.
|
Loading…
Reference in New Issue
Block a user