anchor.diff:  
   ----
   
  -All materials parameter, world parameters, attributes varying are declared first. then for each shader node, the declarative part is appended.+
  -For the main function, for each shader node, the input mappings are declared and assigned, the output are declared.+
  -Then the variable names are replaced in the sahder node code with there complete name (NameSpace_varName), material parameters are replaced in the shader code as is.+
  -Then, the output are mapped.+
  +All materials parameter, world parameters, attributes varying are declared first. then for each shader node, the declarative part is appended. +
  +For the main function, for each shader node, the input mappings are declared and assigned, the output are declared. +
  +Then the variable names are replaced in the sahder node code with there complete name (NameSpace_varName), material parameters are replaced in the shader code as is. +
  +Then, the output are mapped.
   
   As you can see texCoord1/2 and vertColor are declared but never used. That's because the generator is not aware of that. By default it will declare all inputs in case they are used in the shaderNode code.
   Note that most glsl compiler will optimize this when compiling the shader on the GPU.
  
positive.code: ----
  
  *  +++<u>ShaderNode</u>+++ the shader node block
  **  *ShaderNodeName* the name of this shader node, can be anything, but has to be *unique* in the shader scope
  
  *  +++<u>Definition</u>+++ : a reference to the shader node definition
  **  *DefinitionName* : the name of the definition this Node use. this definition can be declared in the same j3md or in its own j3sn file.
  **  *DefinitionPath* : in case the definition is declared in it's own j3sn file, you have to set the path to this file here.
  
  
negative.code: 
  To declare an array you have to specify its size between square brackets. +
  *Constant size* +
  The size can be an int constant. +
  _Example_
  
  [source]
  