3 ***DISCLAIMER***: _These notes are from the defunct k8 project which_
4 _precedes SquirrelJME. The notes for SquirrelJME start on 2016/02/26!_
5 _The k8 project was effectively a Java SE 8 operating system and as such_
6 _all of the notes are in the context of that scope. That project is no_
7 _longer my goal as SquirrelJME is the spiritual successor to it._
15 Moved the descriptions so that LexerDescription contains the stage two
16 generation part. When generating stage two, the generated file will need to
17 setup requirements for code to compile. So it should create a list of implicit
18 dependencies. Compiler should then search through them to see if they are
19 provided and if not, attempt providing them. If they are in an uncompiled form
20 then they are to be implicitly generated (if enabled, which it is by default).
21 If they are not to be compiled then they are at least outlined for usage by
22 what they are needed by.
26 With new implicit method, generation of stage two will have to go through the
27 actual method source code to find other implicit files. So genStageTwo() will
28 have to minorly parse the bodies of methods and fields. The only big trick
29 will be shadowing. However that can be done by lazy realization after
30 something is entirely parsed. So the actual fully qualified class name of any
31 implicit requirement must be done last during generation while keeping object
32 specificity and scope visibility information.
36 The description will handle the base opening of the file and the tokenizer
37 engine will handle tokenization of some input language, then that will be
38 piped to a PushbackIterator in an implementation of of a description for stage
43 An operator that returns the old value and then sets the variable to a new
44 value would be quite useful, would remove any temporaries involved.
48 Had this idea for the static compiler and optimization stuff, when compiling
49 the kernel create potential C++ template like instances of objects using a
50 specific base class for optimization purposes. This would require compiler
51 support however, and would not break type erasure and such.
55 The first bit I need to do in regards to the tokenization is to extract the
56 supported comment forms placed in the language definition.