[SCM] Lisaac library examples branch, master, updated. 282043cfdef5aaf225a6eb5cf22ecbe890a42213

Damien Bouvarel dams.bouvarel at wanadoo.fr
Wed Aug 26 23:49:08 UTC 2009


The following commit has been merged in the master branch:
commit 282043cfdef5aaf225a6eb5cf22ecbe890a42213
Author: Damien Bouvarel <dams.bouvarel at wanadoo.fr>
Date:   Thu Aug 27 01:48:45 2009 +0200

    start 0.14 update

diff --git a/chess/.project b/chess/.project
new file mode 100644
index 0000000..0fe0ba6
--- /dev/null
+++ b/chess/.project
@@ -0,0 +1,309 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>chess</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.lisaac.ldt.builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.lisaac.ldt.lisaac</nature>
+	</natures>
+	<linkedResources>
+		<link>
+			<name>lib/abstract_keycode.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/opengl-binding/framework/low_level/abstract_keycode.li</location>
+		</link>
+		<link>
+			<name>lib/abstract_matrix.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/math/low_level/abstract_matrix.li</location>
+		</link>
+		<link>
+			<name>lib/arrayed.li</name>
+			<type>1</type>
+			<location>C:/files/lisaac_damien/lisaac_damien/lib2/collection/low_level/arrayed.li</location>
+		</link>
+		<link>
+			<name>lib/arrayed_collection.li</name>
+			<type>1</type>
+			<location>C:/files/lisaac_damien/lisaac_damien/lib2/collection/low_level/arrayed_collection.li</location>
+		</link>
+		<link>
+			<name>lib/blending.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/opengl-binding/abstract_renderer/blending.li</location>
+		</link>
+		<link>
+			<name>lib/block.li</name>
+			<type>1</type>
+			<location>C:/files/lisaac_damien/lisaac_damien/lib2/base/block.li</location>
+		</link>
+		<link>
+			<name>lib/boolean.li</name>
+			<type>1</type>
+			<location>C:/files/lisaac_damien/lisaac_damien/lib2/base/boolean.li</location>
+		</link>
+		<link>
+			<name>lib/bounce_plane.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/opengl-binding/3D/particles/bounce_plane.li</location>
+		</link>
+		<link>
+			<name>lib/camera.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/opengl-binding/3D/camera.li</location>
+		</link>
+		<link>
+			<name>lib/capabilities.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/opengl-binding/abstract_renderer/capabilities.li</location>
+		</link>
+		<link>
+			<name>lib/collection.li</name>
+			<type>1</type>
+			<location>C:/files/lisaac_damien/lisaac_damien/lib2/collection/low_level/collection.li</location>
+		</link>
+		<link>
+			<name>lib/collection2.li</name>
+			<type>1</type>
+			<location>C:/files/lisaac_damien/lisaac_damien/lib2/collection/low_level/collection2.li</location>
+		</link>
+		<link>
+			<name>lib/event_listener.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/opengl-binding/framework/event_listener.li</location>
+		</link>
+		<link>
+			<name>lib/fast_array.li</name>
+			<type>1</type>
+			<location>C:/files/lisaac_damien/lisaac_damien/lib2/collection/fast_array.li</location>
+		</link>
+		<link>
+			<name>lib/fast_array2.li</name>
+			<type>1</type>
+			<location>C:/files/lisaac_damien/lisaac_damien/lib2/collection/fast_array2.li</location>
+		</link>
+		<link>
+			<name>lib/float_real.li</name>
+			<type>1</type>
+			<location>C:/files/lisaac_damien/lisaac_damien/lib2/number/low_level/float_real.li</location>
+		</link>
+		<link>
+			<name>lib/font.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/opengl-binding/abstract_renderer/font.li</location>
+		</link>
+		<link>
+			<name>lib/framework.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/opengl-binding/framework/framework.li</location>
+		</link>
+		<link>
+			<name>lib/framework_any.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/opengl-binding/framework/low_level/framework_any.li</location>
+		</link>
+		<link>
+			<name>lib/framework_event.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/opengl-binding/framework/windows/framework_event.li</location>
+		</link>
+		<link>
+			<name>lib/i_dont_know_prototyping.li</name>
+			<type>1</type>
+			<location>C:/files/lisaac_damien/lisaac_damien/lib2/kernel/i_dont_know_prototyping.li</location>
+		</link>
+		<link>
+			<name>lib/image.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/opengl-binding/images/image.li</location>
+		</link>
+		<link>
+			<name>lib/integer.li</name>
+			<type>1</type>
+			<location>C:/files/lisaac_damien/lisaac_damien/lib2/number/integer.li</location>
+		</link>
+		<link>
+			<name>lib/keycode.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/opengl-binding/framework/windows/keycode.li</location>
+		</link>
+		<link>
+			<name>lib/light.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/opengl-binding/abstract_renderer/light.li</location>
+		</link>
+		<link>
+			<name>lib/log.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/opengl-binding/framework/log.li</location>
+		</link>
+		<link>
+			<name>lib/material.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/opengl-binding/abstract_renderer/material.li</location>
+		</link>
+		<link>
+			<name>lib/matrix4.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/math/matrix4.li</location>
+		</link>
+		<link>
+			<name>lib/noise.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/opengl-binding/3D/noise.li</location>
+		</link>
+		<link>
+			<name>lib/numeric.li</name>
+			<type>1</type>
+			<location>C:/files/lisaac_damien/lisaac_damien/lib2/number/low_level/numeric.li</location>
+		</link>
+		<link>
+			<name>lib/object.li</name>
+			<type>1</type>
+			<location>C:/files/lisaac_damien/lisaac_damien/lib2/kernel/object.li</location>
+		</link>
+		<link>
+			<name>lib/opengl.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/opengl-binding/framework/windows/opengl.li</location>
+		</link>
+		<link>
+			<name>lib/opengl_abstract.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/opengl-binding/opengl/opengl_abstract.li</location>
+		</link>
+		<link>
+			<name>lib/opengl_specific.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/opengl-binding/opengl/opengl_specific.li</location>
+		</link>
+		<link>
+			<name>lib/particle_system.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/opengl-binding/3D/particles/particle_system.li</location>
+		</link>
+		<link>
+			<name>lib/plane.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/opengl-binding/abstract_renderer/plane.li</location>
+		</link>
+		<link>
+			<name>lib/platform.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/opengl-binding/framework/windows/platform.li</location>
+		</link>
+		<link>
+			<name>lib/point_force.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/opengl-binding/3D/particles/point_force.li</location>
+		</link>
+		<link>
+			<name>lib/real.li</name>
+			<type>1</type>
+			<location>C:/files/lisaac_damien/lisaac_damien/lib2/number/real.li</location>
+		</link>
+		<link>
+			<name>lib/real_32.li</name>
+			<type>1</type>
+			<location>C:/files/lisaac_damien/lisaac_damien/lib2/number/real_32.li</location>
+		</link>
+		<link>
+			<name>lib/renderer.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/opengl-binding/abstract_renderer/renderer.li</location>
+		</link>
+		<link>
+			<name>lib/reshape.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/opengl-binding/abstract_renderer/reshape.li</location>
+		</link>
+		<link>
+			<name>lib/rgb.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/opengl-binding/abstract_renderer/rgb.li</location>
+		</link>
+		<link>
+			<name>lib/safe_equal.li</name>
+			<type>1</type>
+			<location>C:/files/lisaac_damien/lisaac_damien/lib2/kernel/safe_equal.li</location>
+		</link>
+		<link>
+			<name>lib/scene.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/opengl-binding/framework/scene.li</location>
+		</link>
+		<link>
+			<name>lib/shader.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/opengl-binding/abstract_renderer/shader.li</location>
+		</link>
+		<link>
+			<name>lib/skybox.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/opengl-binding/3D/skybox.li</location>
+		</link>
+		<link>
+			<name>lib/sphere.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/opengl-binding/3D/primitives/sphere.li</location>
+		</link>
+		<link>
+			<name>lib/state.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/opengl-binding/abstract_renderer/state.li</location>
+		</link>
+		<link>
+			<name>lib/string.li</name>
+			<type>1</type>
+			<location>C:/files/lisaac_damien/lisaac_damien/lib2/string/string.li</location>
+		</link>
+		<link>
+			<name>lib/texture.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/opengl-binding/abstract_renderer/texture.li</location>
+		</link>
+		<link>
+			<name>lib/traversable.li</name>
+			<type>1</type>
+			<location>C:/files/lisaac_damien/lisaac_damien/lib2/collection/low_level/traversable.li</location>
+		</link>
+		<link>
+			<name>lib/uinteger_32.li</name>
+			<type>1</type>
+			<location>C:/files/lisaac_damien/lisaac_damien/lib2/number/uinteger_32.li</location>
+		</link>
+		<link>
+			<name>lib/unsigned_integer.li</name>
+			<type>1</type>
+			<location>C:/files/lisaac_damien/lisaac_damien/lib2/number/low_level/unsigned_integer.li</location>
+		</link>
+		<link>
+			<name>lib/vector3.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/math/vector3.li</location>
+		</link>
+		<link>
+			<name>lib/vector4.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/math/vector4.li</location>
+		</link>
+		<link>
+			<name>lib/vertex.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/opengl-binding/abstract_renderer/vertex.li</location>
+		</link>
+		<link>
+			<name>lib/viewport.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/opengl-binding/abstract_renderer/viewport.li</location>
+		</link>
+	</linkedResources>
+</projectDescription>
diff --git a/chess/bishop.li b/chess/bishop.li
index f5b5da5..9f74b0d 100644
--- a/chess/bishop.li
+++ b/chess/bishop.li
@@ -32,19 +32,19 @@ Section Inherit
   + parent_piece:Expanded PIECE;
   
 Section Public
-  
+   
   - name:STRING_CONSTANT := "bishop";
   
   - model:MODEL; // shared model
-  
+   
   - check_move orig:SQUARE to dest:SQUARE :BOOLEAN <-
   // is legal move?
-  ( + result:BOOLEAN;
-    
+  ( + result:BOOLEAN; 
+     
     ((dest.piece = NULL) || {player != dest.piece.player}).if {
       ((dest.x - orig.x).abs = (dest.y - orig.y).abs).if {
-        result := check_path_between orig and dest;
-      };
+        //result := check_path_between orig and dest;
+      }; 
     };
     result
   );
\ No newline at end of file
diff --git a/chess/chess.li b/chess/chess.li
index 605f4e0..0b773e7 100644
--- a/chess/chess.li
+++ b/chess/chess.li
@@ -19,7 +19,7 @@
 //                     http://isaacproject.u-strasbg.fr/                     //
 ///////////////////////////////////////////////////////////////////////////////
 
-Section Header
+Section Header 
   
   + name     := CHESS;
   
@@ -62,10 +62,10 @@ Section Public
   - square_size:INTEGER := 32;
   
   // pieces
-  - p1:FAST_ARRAY[PIECE];
-  - p2:FAST_ARRAY[PIECE];
+  - p1:FAST_ARRAY(PIECE);
+  - p2:FAST_ARRAY(PIECE);
   
-  - chessboard:FAST_ARRAY[PIECE]; 
+  - chessboard:FAST_ARRAY(PIECE); 
   
   - gamestate:GAMESTATE := GAMESTATE;
   
@@ -87,7 +87,7 @@ Section Public
   - illegal_move_color:COLOR := RGB.create (0.8,0,0);
   
   - light:LIGHT;
-  - light_pos:VECTOR3[REAL_32];
+  - light_pos:VECTOR3(REAL_32);
   
   - light_shader:SHADER;
   - loc_texture:INTEGER;
@@ -97,24 +97,24 @@ Section Public
   - piece_material:MATERIAL;
   - board_material:MATERIAL;
   
-  - shadow_matrix:MATRIX4[REAL_32];
+  - shadow_matrix:MATRIX4(REAL_32);
   - shadow_plane:PLANE;
   
   - particle_system:PARTICLE_SYSTEM;// when capture is on
   - particle_texture:TEXTURE;
 
-  - modelview:MATRIX4[REAL_32];
-  - dx:VECTOR3[REAL_32] := VECTOR3[REAL_32].zero;
-  - dy:VECTOR3[REAL_32] := VECTOR3[REAL_32].zero;
+  - modelview:MATRIX4(REAL_32);
+  - dx:VECTOR3(REAL_32) := VECTOR3(REAL_32).zero;
+  - dy:VECTOR3(REAL_32) := VECTOR3(REAL_32).zero;
   
   - logo:TEXTURE;
   
   
   - initialize:BOOLEAN <-
   ( + infolog:STRING;
-    + board:FAST_ARRAY[UINTEGER_8];
+    + board:FAST_ARRAY(UINTEGER_8);
     + dim:INTEGER;
-    + orig,pf_pos:VECTOR3[REAL_32];
+    + orig,pf_pos:VECTOR3(REAL_32);
     + ambient,diffuse,specular,emission:RGB;
     + shine:REAL_32;
     + constraint:CONSTRAINT;
@@ -128,7 +128,7 @@ Section Public
     
     
     dim := 256;
-    board := FAST_ARRAY[UINTEGER_8].create (dim*dim);
+    board := FAST_ARRAY(UINTEGER_8).create (dim*dim);
     
     // procedural image
     0.to (dim-1) do { i:INTEGER;
@@ -148,9 +148,9 @@ Section Public
     // load models
     //
     
-    p1 := FAST_ARRAY[PIECE].create_with_capacity 16;
-    p2 := FAST_ARRAY[PIECE].create_with_capacity 16;
-    chessboard := FAST_ARRAY[PIECE].create 64;
+    p1 := FAST_ARRAY(PIECE).create_with_capacity 16;
+    p2 := FAST_ARRAY(PIECE).create_with_capacity 16;
+    chessboard := FAST_ARRAY(PIECE).create 64;
     
     0.to 7 do { i:INTEGER;
       load_piece PAWN at (i,6) in p1 player 1;
@@ -186,17 +186,17 @@ Section Public
     //
     // intro motion (rotate around chessboard..)
     //
-    orig := VECTOR3[REAL_32].zero;
-    camera.add_waypoint (VECTOR3[REAL_32].create (0, 100, -800));
+    orig := VECTOR3(REAL_32).zero;
+    camera.add_waypoint (VECTOR3(REAL_32).create (0, 100, -800));
     camera.add_waypoint orig;
     
-    camera.add_waypoint (VECTOR3[REAL_32].create (0,150,-300));
+    camera.add_waypoint (VECTOR3(REAL_32).create (0,150,-300));
     camera.add_waypoint orig;
     
-    camera.add_waypoint (VECTOR3[REAL_32].create (500, 250, 0));
-    camera.add_waypoint (VECTOR3[REAL_32].create (0, 100, 50));
+    camera.add_waypoint (VECTOR3(REAL_32).create (500, 250, 0));
+    camera.add_waypoint (VECTOR3(REAL_32).create (0, 100, 50));
     
-    camera.add_waypoint (VECTOR3[REAL_32].create (0,200,300));
+    camera.add_waypoint (VECTOR3(REAL_32).create (0,200,300));
     camera.add_waypoint orig;
     
     //
@@ -207,12 +207,12 @@ Section Public
     particle_system.set_size (2, 0.5);
     particle_system.set_spawn_rate 4;
     
-    pf_pos := VECTOR3[REAL_32].create (0, 80, 0); // attraction point
+    pf_pos := VECTOR3(REAL_32).create (0, 80, 0); // attraction point
     
     constraint := POINT_FORCE.create (pf_pos,0.005,0,0.001);
     particle_system.add_constraint constraint;
     
-    constraint := BOUNCE_PLANE.create (VECTOR3[REAL_32].create (0,1,0), 20);
+    constraint := BOUNCE_PLANE.create (VECTOR3(REAL_32).create (0,1,0), 20);
     particle_system.add_constraint constraint;
     
     
@@ -221,7 +221,7 @@ Section Public
     particle_texture := renderer.texture2d.create_from (IMAGE.create "textures/particle.bmp");
     renderer.texture2d.set_wrapping_mode (renderer.texture2d.repeat);
     
-    modelview := MATRIX4[REAL_32].create;
+    modelview := MATRIX4(REAL_32).create;
     
     //
     //  Board lighting
@@ -247,7 +247,7 @@ Section Public
     };
     
     // create OpenGL light (also used in light shader)
-    light_pos := VECTOR3[REAL_32].create (50,300,-30);
+    light_pos := VECTOR3(REAL_32).create (50,300,-30);
     ambient := RGB.create (0.2, 0.2, 0.2);
     diffuse := RGB.create (1.0, 1.0, 1.0);
     specular := RGB.create (1.0, 1.0, 1.0);
@@ -280,14 +280,14 @@ Section Public
     renderer.stencil_buffer.set_clear_value 0.0;
     
     // for shadow casting
-    shadow_matrix := MATRIX4[REAL_32].create;
+    shadow_matrix := MATRIX4(REAL_32).create;
     
     // cast shadow on board plane
     shadow_plane := renderer.plane.create (0,1,0,0);
     TRUE
   );
   
-  - load_piece type:PIECE at (x,y:INTEGER) in p:FAST_ARRAY[PIECE] player pl:INTEGER <-
+  - load_piece type:PIECE at (x,y:INTEGER) in p:FAST_ARRAY(PIECE) player pl:INTEGER <-
   ( + piece:PIECE;
     
     piece := type.create (x,y,pl) index (p.count);
@@ -625,7 +625,7 @@ Section Public
   // Selection.
   //
   
-  - hits:FAST_ARRAY[UINTEGER_32] := FAST_ARRAY[UINTEGER_32].create 512;
+  - hits:FAST_ARRAY(UINTEGER_32) := FAST_ARRAY(UINTEGER_32).create 512;
   
   - select_piece (x,y:UINTEGER_32) :PIECE <-
   // selection from camera view vector
@@ -701,7 +701,7 @@ Section Public
   - select_square (x,y:UINTEGER_32) :SQUARE <-
   // selection from camera view vector
   ( + result:SQUARE;
-    + target:VECTOR3[REAL_32];
+    + target:VECTOR3(REAL_32);
     + fraction,start_dist,end_dist,start_frac,end_frac,epsilon:REAL_32;
     + x_col,z_col:REAL_32;
     + px,py:INTEGER;
diff --git a/chess/chesscam.li b/chess/chesscam.li
index e18d29b..ae4a419 100644
--- a/chess/chesscam.li
+++ b/chess/chesscam.li
@@ -33,26 +33,26 @@ Section Inherit
   
 Section Public
   
-  - waypoints:LINKED_LIST[VECTOR3[REAL_32]] := LINKED_LIST[VECTOR3[REAL_32]].create;
+  - waypoints:LINKED_LIST(VECTOR3(REAL_32)) := LINKED_LIST(VECTOR3(REAL_32)).create;
   - lerp:REAL_32;
   
   
-  - is_traveling:BOOLEAN <- waypoints.count > 0;
+  - is_traveling:BOOLEAN <- (waypoints.count > 0);
   
   
-  - add_waypoint p:VECTOR3[REAL_32] <-
+  - add_waypoint p:VECTOR3(REAL_32) <-
   (
     waypoints.add_last p;
   );
   
   - add_waypoint3f (x,y,z:REAL_32) <-
   (
-    waypoints.add_last (VECTOR3[REAL_32].create (x, y, z));
+    waypoints.add_last (VECTOR3(REAL_32).create (x, y, z));
   );
   
   - animate t:REAL_32 <-
   (
-    + u,v:VECTOR3[REAL_32];
+    + u,v:VECTOR3(REAL_32);
     
     waypoints.is_empty.if {
       update_with_mouse;
@@ -92,5 +92,5 @@ Section Public
     };
   );
   
-  - std_up:VECTOR3[REAL_32] := VECTOR3[REAL_32].create (0,1,0);
+  - std_up:VECTOR3(REAL_32) := VECTOR3(REAL_32).create (0,1,0);
   
diff --git a/chess/current_path.txt b/chess/current_path.txt
new file mode 100644
index 0000000..1fc7ff0
--- /dev/null
+++ b/chess/current_path.txt
@@ -0,0 +1,349 @@
+C:/files/GIT/examples/chess/bishop.li
+C:/files/GIT/examples/chess/chess.li
+C:/files/GIT/examples/chess/chesscam.li
+C:/files/GIT/examples/chess/gamestate.li
+C:/files/GIT/examples/chess/king.li
+C:/files/GIT/examples/chess/knight.li
+C:/files/GIT/examples/chess/pawn.li
+C:/files/GIT/examples/chess/piece.li
+C:/files/GIT/examples/chess/queen.li
+C:/files/GIT/examples/chess/rook.li
+C:/files/GIT/examples/chess/square.li
+C:/files/GIT/examples/chess/world1.li
+C:/files/GIT/opengl-binding/3D/camera.li
+C:/files/GIT/opengl-binding/3D/model.li
+C:/files/GIT/opengl-binding/3D/models/md2_frame.li
+C:/files/GIT/opengl-binding/3D/models/md2_model.li
+C:/files/GIT/opengl-binding/3D/models/md2_normals.li
+C:/files/GIT/opengl-binding/3D/models/md2_triangle.li
+C:/files/GIT/opengl-binding/3D/models/md2_vertex.li
+C:/files/GIT/opengl-binding/3D/noise.li
+C:/files/GIT/opengl-binding/3D/particles/bounce_plane.li
+C:/files/GIT/opengl-binding/3D/particles/constraint.li
+C:/files/GIT/opengl-binding/3D/particles/kill_plane.li
+C:/files/GIT/opengl-binding/3D/particles/particle.li
+C:/files/GIT/opengl-binding/3D/particles/particle_system.li
+C:/files/GIT/opengl-binding/3D/particles/point_force.li
+C:/files/GIT/opengl-binding/3D/primitives/cone.li
+C:/files/GIT/opengl-binding/3D/primitives/cylinder.li
+C:/files/GIT/opengl-binding/3D/primitives/sphere.li
+C:/files/GIT/opengl-binding/3D/skybox.li
+C:/files/GIT/opengl-binding/3D/terrain.li
+C:/files/GIT/opengl-binding/abstract_renderer/abstract_evaluator.li
+C:/files/GIT/opengl-binding/abstract_renderer/accum_buffer.li
+C:/files/GIT/opengl-binding/abstract_renderer/alpha_test.li
+C:/files/GIT/opengl-binding/abstract_renderer/blending.li
+C:/files/GIT/opengl-binding/abstract_renderer/capabilities.li
+C:/files/GIT/opengl-binding/abstract_renderer/color.li
+C:/files/GIT/opengl-binding/abstract_renderer/color_buffer.li
+C:/files/GIT/opengl-binding/abstract_renderer/culling.li
+C:/files/GIT/opengl-binding/abstract_renderer/depth_buffer.li
+C:/files/GIT/opengl-binding/abstract_renderer/display_list.li
+C:/files/GIT/opengl-binding/abstract_renderer/error.li
+C:/files/GIT/opengl-binding/abstract_renderer/evaluator1d.li
+C:/files/GIT/opengl-binding/abstract_renderer/evaluator2d.li
+C:/files/GIT/opengl-binding/abstract_renderer/fog.li
+C:/files/GIT/opengl-binding/abstract_renderer/font.li
+C:/files/GIT/opengl-binding/abstract_renderer/index_buffer.li
+C:/files/GIT/opengl-binding/abstract_renderer/light.li
+C:/files/GIT/opengl-binding/abstract_renderer/material.li
+C:/files/GIT/opengl-binding/abstract_renderer/name_stack.li
+C:/files/GIT/opengl-binding/abstract_renderer/plane.li
+C:/files/GIT/opengl-binding/abstract_renderer/quadrics.li
+C:/files/GIT/opengl-binding/abstract_renderer/renderer.li
+C:/files/GIT/opengl-binding/abstract_renderer/reshape.li
+C:/files/GIT/opengl-binding/abstract_renderer/rgb.li
+C:/files/GIT/opengl-binding/abstract_renderer/rgba.li
+C:/files/GIT/opengl-binding/abstract_renderer/scissor.li
+C:/files/GIT/opengl-binding/abstract_renderer/shader.li
+C:/files/GIT/opengl-binding/abstract_renderer/state.li
+C:/files/GIT/opengl-binding/abstract_renderer/stencil_buffer.li
+C:/files/GIT/opengl-binding/abstract_renderer/texture.li
+C:/files/GIT/opengl-binding/abstract_renderer/transform.li
+C:/files/GIT/opengl-binding/abstract_renderer/vertex.li
+C:/files/GIT/opengl-binding/abstract_renderer/vertex_buffer.li
+C:/files/GIT/opengl-binding/abstract_renderer/viewport.li
+C:/files/GIT/opengl-binding/framework/event_listener.li
+C:/files/GIT/opengl-binding/framework/framework.li
+C:/files/GIT/opengl-binding/framework/log.li
+C:/files/GIT/opengl-binding/framework/low_level/abstract_keycode.li
+C:/files/GIT/opengl-binding/framework/low_level/framework_any.li
+C:/files/GIT/opengl-binding/framework/scene.li
+C:/files/GIT/opengl-binding/framework/unix/framework_event.li
+C:/files/GIT/opengl-binding/framework/unix/gl_font.li
+C:/files/GIT/opengl-binding/framework/unix/keycode.li
+C:/files/GIT/opengl-binding/framework/unix/opengl.li
+C:/files/GIT/opengl-binding/framework/unix/platform.li
+C:/files/GIT/opengl-binding/framework/windows/framework_event.li
+C:/files/GIT/opengl-binding/framework/windows/gl_font.li
+C:/files/GIT/opengl-binding/framework/windows/keycode.li
+C:/files/GIT/opengl-binding/framework/windows/opengl.li
+C:/files/GIT/opengl-binding/framework/windows/platform.li
+C:/files/GIT/opengl-binding/glspec2li.li
+C:/files/GIT/opengl-binding/gui/gl_desk.li
+C:/files/GIT/opengl-binding/gui/gl_driver.li
+C:/files/GIT/opengl-binding/gui/g_gldraw.li
+C:/files/GIT/opengl-binding/gui/unix/gl_event_system.li
+C:/files/GIT/opengl-binding/gui/windows/gl_event_system.li
+C:/files/GIT/opengl-binding/images/bmp.li
+C:/files/GIT/opengl-binding/images/image.li
+C:/files/GIT/opengl-binding/images/image_format.li
+C:/files/GIT/opengl-binding/images/tga.li
+C:/files/GIT/opengl-binding/images/tga_header.li
+C:/files/GIT/opengl-binding/opengl/extensions/arb_fragment_shader.li
+C:/files/GIT/opengl-binding/opengl/extensions/arb_multitexture.li
+C:/files/GIT/opengl-binding/opengl/extensions/arb_shader_object.li
+C:/files/GIT/opengl-binding/opengl/extensions/arb_shading_language_100.li
+C:/files/GIT/opengl-binding/opengl/extensions/arb_vertex_buffer_object.li
+C:/files/GIT/opengl-binding/opengl/extensions/arb_vertex_shader.li
+C:/files/GIT/opengl-binding/opengl/gl.li
+C:/files/GIT/opengl-binding/opengl/gl_abstract_texture.li
+C:/files/GIT/opengl-binding/opengl/gl_accum_buffer.li
+C:/files/GIT/opengl-binding/opengl/gl_alpha_test.li
+C:/files/GIT/opengl-binding/opengl/gl_blending.li
+C:/files/GIT/opengl-binding/opengl/gl_color_buffer.li
+C:/files/GIT/opengl-binding/opengl/gl_culling.li
+C:/files/GIT/opengl-binding/opengl/gl_depth_buffer.li
+C:/files/GIT/opengl-binding/opengl/gl_display_list.li
+C:/files/GIT/opengl-binding/opengl/gl_error.li
+C:/files/GIT/opengl-binding/opengl/gl_evaluator1d.li
+C:/files/GIT/opengl-binding/opengl/gl_evaluator2d.li
+C:/files/GIT/opengl-binding/opengl/gl_extension.li
+C:/files/GIT/opengl-binding/opengl/gl_fog.li
+C:/files/GIT/opengl-binding/opengl/gl_font_abstract.li
+C:/files/GIT/opengl-binding/opengl/gl_index_buffer.li
+C:/files/GIT/opengl-binding/opengl/gl_light.li
+C:/files/GIT/opengl-binding/opengl/gl_material.li
+C:/files/GIT/opengl-binding/opengl/gl_name_stack.li
+C:/files/GIT/opengl-binding/opengl/gl_plane.li
+C:/files/GIT/opengl-binding/opengl/gl_quadrics.li
+C:/files/GIT/opengl-binding/opengl/gl_scissor.li
+C:/files/GIT/opengl-binding/opengl/gl_shader.li
+C:/files/GIT/opengl-binding/opengl/gl_stencil_buffer.li
+C:/files/GIT/opengl-binding/opengl/gl_texture1d.li
+C:/files/GIT/opengl-binding/opengl/gl_texture2d.li
+C:/files/GIT/opengl-binding/opengl/gl_transform.li
+C:/files/GIT/opengl-binding/opengl/gl_vertex_array.li
+C:/files/GIT/opengl-binding/opengl/gl_vertex_buffer.li
+C:/files/GIT/opengl-binding/opengl/opengl_abstract.li
+C:/files/GIT/opengl-binding/opengl/opengl_specific.li
+C:/files/GIT/math/low_level/abstract_matrix.li
+C:/files/GIT/math/matrix.li
+C:/files/GIT/math/matrix4.li
+C:/files/GIT/math/vector2.li
+C:/files/GIT/math/vector3.li
+C:/files/GIT/math/vector4.li
+C:/files/lisaac_damien/lisaac_damien/lib2/base/block.li
+C:/files/lisaac_damien/lisaac_damien/lib2/base/boolean.li
+C:/files/lisaac_damien/lisaac_damien/lib2/base/character.li
+C:/files/lisaac_damien/lisaac_damien/lib2/base/char_unicode.li
+C:/files/lisaac_damien/lisaac_damien/lib2/base/enum.li
+C:/files/lisaac_damien/lisaac_damien/lib2/base/false.li
+C:/files/lisaac_damien/lisaac_damien/lib2/base/low_level/character_ref.li
+C:/files/lisaac_damien/lisaac_damien/lib2/base/reference.li
+C:/files/lisaac_damien/lisaac_damien/lib2/base/tools.li
+C:/files/lisaac_damien/lisaac_damien/lib2/base/true.li
+C:/files/lisaac_damien/lisaac_damien/lib2/collection/array.li
+C:/files/lisaac_damien/lisaac_damien/lib2/collection/array2.li
+C:/files/lisaac_damien/lisaac_damien/lib2/collection/array3.li
+C:/files/lisaac_damien/lisaac_damien/lib2/collection/avl_dictionary.li
+C:/files/lisaac_damien/lisaac_damien/lib2/collection/avl_set.li
+C:/files/lisaac_damien/lisaac_damien/lib2/collection/fast_array.li
+C:/files/lisaac_damien/lisaac_damien/lib2/collection/fast_array2.li
+C:/files/lisaac_damien/lisaac_damien/lib2/collection/fast_array3.li
+C:/files/lisaac_damien/lisaac_damien/lib2/collection/hashed_dictionary.li
+C:/files/lisaac_damien/lisaac_damien/lib2/collection/hashed_set.li
+C:/files/lisaac_damien/lisaac_damien/lib2/collection/iterator.li
+C:/files/lisaac_damien/lisaac_damien/lib2/collection/linked2_list.li
+C:/files/lisaac_damien/lisaac_damien/lib2/collection/linked_list.li
+C:/files/lisaac_damien/lisaac_damien/lib2/collection/linked_xor_list.li
+C:/files/lisaac_damien/lisaac_damien/lib2/collection/low_level/any_avl_dictionary_node.li
+C:/files/lisaac_damien/lisaac_damien/lib2/collection/low_level/any_avl_set_node.li
+C:/files/lisaac_damien/lisaac_damien/lib2/collection/low_level/any_hashed_bijective_dictionary_node.li
+C:/files/lisaac_damien/lisaac_damien/lib2/collection/low_level/any_hashed_dictionary_node.li
+C:/files/lisaac_damien/lisaac_damien/lib2/collection/low_level/any_hashed_set_node.li
+C:/files/lisaac_damien/lisaac_damien/lib2/collection/low_level/any_linked_list_node.li
+C:/files/lisaac_damien/lisaac_damien/lib2/collection/low_level/any_two_way_linked_list_node.li
+C:/files/lisaac_damien/lisaac_damien/lib2/collection/low_level/arrayed.li
+C:/files/lisaac_damien/lisaac_damien/lib2/collection/low_level/arrayed_collection.li
+C:/files/lisaac_damien/lisaac_damien/lib2/collection/low_level/avl_constants.li
+C:/files/lisaac_damien/lisaac_damien/lib2/collection/low_level/avl_dictionary_node.li
+C:/files/lisaac_damien/lisaac_damien/lib2/collection/low_level/avl_set_node.li
+C:/files/lisaac_damien/lisaac_damien/lib2/collection/low_level/avl_tree.li
+C:/files/lisaac_damien/lisaac_damien/lib2/collection/low_level/avl_tree_node.li
+C:/files/lisaac_damien/lisaac_damien/lib2/collection/low_level/collection.li
+C:/files/lisaac_damien/lisaac_damien/lib2/collection/low_level/collection2.li
+C:/files/lisaac_damien/lisaac_damien/lib2/collection/low_level/collection3.li
+C:/files/lisaac_damien/lisaac_damien/lib2/collection/low_level/dictionary.li
+C:/files/lisaac_damien/lisaac_damien/lib2/collection/low_level/hashed_dictionary_node.li
+C:/files/lisaac_damien/lisaac_damien/lib2/collection/low_level/hashed_set_node.li
+C:/files/lisaac_damien/lisaac_damien/lib2/collection/low_level/hash_table_size.li
+C:/files/lisaac_damien/lisaac_damien/lib2/collection/low_level/linked2_list_node.li
+C:/files/lisaac_damien/lisaac_damien/lib2/collection/low_level/linked_collection.li
+C:/files/lisaac_damien/lisaac_damien/lib2/collection/low_level/linked_list_node.li
+C:/files/lisaac_damien/lisaac_damien/lib2/collection/low_level/linked_xor_node.li
+C:/files/lisaac_damien/lisaac_damien/lib2/collection/low_level/native_array.li
+C:/files/lisaac_damien/lisaac_damien/lib2/collection/low_level/native_array_volatile.li
+C:/files/lisaac_damien/lisaac_damien/lib2/collection/low_level/set.li
+C:/files/lisaac_damien/lisaac_damien/lib2/collection/low_level/simple_dictionary.li
+C:/files/lisaac_damien/lisaac_damien/lib2/collection/low_level/traversable.li
+C:/files/lisaac_damien/lisaac_damien/lib2/file_system/directory.li
+C:/files/lisaac_damien/lisaac_damien/lib2/file_system/entry.li
+C:/files/lisaac_damien/lisaac_damien/lib2/file_system/fs_min.li
+C:/files/lisaac_damien/lisaac_damien/lib2/file_system/std_file.li
+C:/files/lisaac_damien/lisaac_damien/lib2/format/ai/ai_alias.li
+C:/files/lisaac_damien/lisaac_damien/lib2/format/ai/ai_bezier.li
+C:/files/lisaac_damien/lisaac_damien/lib2/format/ai/ai_color.li
+C:/files/lisaac_damien/lisaac_damien/lib2/format/ai/ai_file.li
+C:/files/lisaac_damien/lisaac_damien/lib2/format/ai/ai_layer.li
+C:/files/lisaac_damien/lisaac_damien/lib2/format/ai/ai_line.li
+C:/files/lisaac_damien/lisaac_damien/lib2/format/ai/ai_move.li
+C:/files/lisaac_damien/lisaac_damien/lib2/format/ai/ai_operation.li
+C:/files/lisaac_damien/lisaac_damien/lib2/format/ai/ai_parser.li
+C:/files/lisaac_damien/lisaac_damien/lib2/format/bmp/bmp_file.li
+C:/files/lisaac_damien/lisaac_damien/lib2/format/bmp/bmp_header.li
+C:/files/lisaac_damien/lisaac_damien/lib2/format/bmp/format_bmp.li
+C:/files/lisaac_damien/lisaac_damien/lib2/format/format_img.li
+C:/files/lisaac_damien/lisaac_damien/lib2/graphics/bitmap.li
+C:/files/lisaac_damien/lisaac_damien/lib2/graphics/bmp_line.li
+C:/files/lisaac_damien/lisaac_damien/lib2/graphics/edge.li
+C:/files/lisaac_damien/lisaac_damien/lib2/graphics/low_level/abstract_bitmap.li
+C:/files/lisaac_damien/lisaac_damien/lib2/graphics/low_level/abstract_bmp_line.li
+C:/files/lisaac_damien/lisaac_damien/lib2/graphics/low_level/pixel.li
+C:/files/lisaac_damien/lisaac_damien/lib2/graphics/pixel_15.li
+C:/files/lisaac_damien/lisaac_damien/lib2/graphics/pixel_16.li
+C:/files/lisaac_damien/lisaac_damien/lib2/graphics/pixel_24.li
+C:/files/lisaac_damien/lisaac_damien/lib2/graphics/pixel_32.li
+C:/files/lisaac_damien/lisaac_damien/lib2/gui/clipping/area.li
+C:/files/lisaac_damien/lisaac_damien/lib2/gui/clipping/area_mask.li
+C:/files/lisaac_damien/lisaac_damien/lib2/gui/clipping/clip.li
+C:/files/lisaac_damien/lisaac_damien/lib2/gui/clipping/limit_x.li
+C:/files/lisaac_damien/lisaac_damien/lib2/gui/clipping/limit_y.li
+C:/files/lisaac_damien/lisaac_damien/lib2/gui/clipping/plan.li
+C:/files/lisaac_damien/lisaac_damien/lib2/gui/desk.li
+C:/files/lisaac_damien/lisaac_damien/lib2/gui/event/event.li
+C:/files/lisaac_damien/lisaac_damien/lib2/gui/event/event_gui.li
+C:/files/lisaac_damien/lisaac_damien/lib2/gui/event/event_keyboard.li
+C:/files/lisaac_damien/lisaac_damien/lib2/gui/event/event_mouse.li
+C:/files/lisaac_damien/lisaac_damien/lib2/gui/event/event_timer.li
+C:/files/lisaac_damien/lisaac_damien/lib2/gui/g_button.li
+C:/files/lisaac_damien/lisaac_damien/lib2/gui/g_check.li
+C:/files/lisaac_damien/lisaac_damien/lib2/gui/g_img.li
+C:/files/lisaac_damien/lisaac_damien/lib2/gui/g_in.li
+C:/files/lisaac_damien/lisaac_damien/lib2/gui/g_out.li
+C:/files/lisaac_damien/lisaac_damien/lib2/gui/g_raw.li
+C:/files/lisaac_damien/lisaac_damien/lib2/gui/g_win_in.li
+C:/files/lisaac_damien/lisaac_damien/lib2/gui/g_win_out.li
+C:/files/lisaac_damien/lisaac_damien/lib2/gui/g_win_out_trans_test.li
+C:/files/lisaac_damien/lisaac_damien/lib2/gui/input/input.li
+C:/files/lisaac_damien/lisaac_damien/lib2/gui/input/input_keyboard.li
+C:/files/lisaac_damien/lisaac_damien/lib2/gui/low_level/g_binary_expr.li
+C:/files/lisaac_damien/lisaac_damien/lib2/gui/low_level/g_div_expr.li
+C:/files/lisaac_damien/lisaac_damien/lib2/gui/low_level/g_elevator.li
+C:/files/lisaac_damien/lisaac_damien/lib2/gui/low_level/g_expr.li
+C:/files/lisaac_damien/lisaac_damien/lib2/gui/low_level/g_group.li
+C:/files/lisaac_damien/lisaac_damien/lib2/gui/low_level/g_or_expr.li
+C:/files/lisaac_damien/lisaac_damien/lib2/gui/low_level/g_win_in_intern.li
+C:/files/lisaac_damien/lisaac_damien/lib2/gui/low_level/inbox.li
+C:/files/lisaac_damien/lisaac_damien/lib2/gui/low_level/virtual_screen.li
+C:/files/lisaac_damien/lisaac_damien/lib2/gui/old/group_in/grp_tree.li
+C:/files/lisaac_damien/lisaac_damien/lib2/gui/old/label/lab_key.li
+C:/files/lisaac_damien/lisaac_damien/lib2/guii/action.li
+C:/files/lisaac_damien/lisaac_damien/lib2/guii/check.li
+C:/files/lisaac_damien/lisaac_damien/lib2/guii/dimension.li
+C:/files/lisaac_damien/lisaac_damien/lib2/guii/drop_down_menu.li
+C:/files/lisaac_damien/lisaac_damien/lib2/guii/essai_drop_down.li
+C:/files/lisaac_damien/lisaac_damien/lib2/guii/essai_light.li
+C:/files/lisaac_damien/lisaac_damien/lib2/guii/guii.li
+C:/files/lisaac_damien/lisaac_damien/lib2/guii/g_page.li
+C:/files/lisaac_damien/lisaac_damien/lib2/guii/inode.li
+C:/files/lisaac_damien/lisaac_damien/lib2/guii/internal_inode.li
+C:/files/lisaac_damien/lisaac_damien/lib2/guii/menu_bar.li
+C:/files/lisaac_damien/lisaac_damien/lib2/guii/menu_h.li
+C:/files/lisaac_damien/lisaac_damien/lib2/guii/menu_h_out.li
+C:/files/lisaac_damien/lisaac_damien/lib2/guii/menu_v.li
+C:/files/lisaac_damien/lisaac_damien/lib2/guii/menu_v_out.li
+C:/files/lisaac_damien/lisaac_damien/lib2/guii/page.li
+C:/files/lisaac_damien/lisaac_damien/lib2/guii/raw_h.li
+C:/files/lisaac_damien/lisaac_damien/lib2/guii/raw_v.li
+C:/files/lisaac_damien/lisaac_damien/lib2/guii/test.li
+C:/files/lisaac_damien/lisaac_damien/lib2/guii/test_gui2.li
+C:/files/lisaac_damien/lisaac_damien/lib2/guii/tool_bar.li
+C:/files/lisaac_damien/lisaac_damien/lib2/guii/window.li
+C:/files/lisaac_damien/lisaac_damien/lib2/guii/win_in.li
+C:/files/lisaac_damien/lisaac_damien/lib2/io/file_input_stream.li
+C:/files/lisaac_damien/lisaac_damien/lib2/io/file_output_stream.li
+C:/files/lisaac_damien/lisaac_damien/lib2/io/input_stream.li
+C:/files/lisaac_damien/lisaac_damien/lib2/io/io.li
+C:/files/lisaac_damien/lisaac_damien/lib2/io/output_stream.li
+C:/files/lisaac_damien/lisaac_damien/lib2/io/std_error.li
+C:/files/lisaac_damien/lisaac_damien/lib2/io/std_input.li
+C:/files/lisaac_damien/lisaac_damien/lib2/io/std_input_output.li
+C:/files/lisaac_damien/lisaac_damien/lib2/io/std_output.li
+C:/files/lisaac_damien/lisaac_damien/lib2/kernel/comparable.li
+C:/files/lisaac_damien/lisaac_damien/lib2/kernel/convert.li
+C:/files/lisaac_damien/lisaac_damien/lib2/kernel/hashable.li
+C:/files/lisaac_damien/lisaac_damien/lib2/kernel/i_dont_know_prototyping.li
+C:/files/lisaac_damien/lisaac_damien/lib2/kernel/object.li
+C:/files/lisaac_damien/lisaac_damien/lib2/kernel/pointer.li
+C:/files/lisaac_damien/lisaac_damien/lib2/kernel/safe_equal.li
+C:/files/lisaac_damien/lisaac_damien/lib2/memory/memory.li
+C:/files/lisaac_damien/lisaac_damien/lib2/number/integer.li
+C:/files/lisaac_damien/lisaac_damien/lib2/number/integer_16.li
+C:/files/lisaac_damien/lisaac_damien/lib2/number/integer_32.li
+C:/files/lisaac_damien/lisaac_damien/lib2/number/integer_64.li
+C:/files/lisaac_damien/lisaac_damien/lib2/number/integer_8.li
+C:/files/lisaac_damien/lisaac_damien/lib2/number/integer_big.li
+C:/files/lisaac_damien/lisaac_damien/lib2/number/low_level/fixed_real.li
+C:/files/lisaac_damien/lisaac_damien/lib2/number/low_level/float_map.li
+C:/files/lisaac_damien/lisaac_damien/lib2/number/low_level/float_map32.li
+C:/files/lisaac_damien/lisaac_damien/lib2/number/low_level/float_map64.li
+C:/files/lisaac_damien/lisaac_damien/lib2/number/low_level/float_map80.li
+C:/files/lisaac_damien/lisaac_damien/lib2/number/low_level/float_real.li
+C:/files/lisaac_damien/lisaac_damien/lib2/number/low_level/numeric.li
+C:/files/lisaac_damien/lisaac_damien/lib2/number/low_level/signed_fixed_real.li
+C:/files/lisaac_damien/lisaac_damien/lib2/number/low_level/signed_integer.li
+C:/files/lisaac_damien/lisaac_damien/lib2/number/low_level/unsigned_fixed_real.li
+C:/files/lisaac_damien/lisaac_damien/lib2/number/low_level/unsigned_integer.li
+C:/files/lisaac_damien/lisaac_damien/lib2/number/real.li
+C:/files/lisaac_damien/lisaac_damien/lib2/number/real_16_16.li
+C:/files/lisaac_damien/lisaac_damien/lib2/number/real_24_8.li
+C:/files/lisaac_damien/lisaac_damien/lib2/number/real_26_6.li
+C:/files/lisaac_damien/lisaac_damien/lib2/number/real_32.li
+C:/files/lisaac_damien/lisaac_damien/lib2/number/real_64.li
+C:/files/lisaac_damien/lisaac_damien/lib2/number/real_80.li
+C:/files/lisaac_damien/lisaac_damien/lib2/number/uinteger.li
+C:/files/lisaac_damien/lisaac_damien/lib2/number/uinteger_16.li
+C:/files/lisaac_damien/lisaac_damien/lib2/number/uinteger_32.li
+C:/files/lisaac_damien/lisaac_damien/lib2/number/uinteger_64.li
+C:/files/lisaac_damien/lisaac_damien/lib2/number/uinteger_8.li
+C:/files/lisaac_damien/lisaac_damien/lib2/number/uinteger_big.li
+C:/files/lisaac_damien/lisaac_damien/lib2/number/ureal_16_16.li
+C:/files/lisaac_damien/lisaac_damien/lib2/number/ureal_24_8.li
+C:/files/lisaac_damien/lisaac_damien/lib2/number/ureal_26_6.li
+C:/files/lisaac_damien/lisaac_damien/lib2/reflexivity/fifo_cop.li
+C:/files/lisaac_damien/lisaac_damien/lib2/reflexivity/view_object.li
+C:/files/lisaac_damien/lisaac_damien/lib2/reflexivity/view_slot.li
+C:/files/lisaac_damien/lisaac_damien/lib2/string/abstract_string.li
+C:/files/lisaac_damien/lisaac_damien/lib2/string/string.li
+C:/files/lisaac_damien/lisaac_damien/lib2/string/string_constant.li
+C:/files/lisaac_damien/lisaac_damien/lib2/system/command_line.li
+C:/files/lisaac_damien/lisaac_damien/lib2/system/system_detect.li
+C:/files/lisaac_damien/lisaac_damien/lib2/testing/unit_test.li
+C:/files/lisaac_damien/lisaac_damien/lib2/time/date.li
+C:/files/lisaac_damien/lisaac_damien/lib2/time/time.li
+C:/files/lisaac_damien/lisaac_damien/lib2_os/unix/system/clock.li
+C:/files/lisaac_damien/lisaac_damien/lib2_os/unix/system/environment.li
+C:/files/lisaac_damien/lisaac_damien/lib2_os/unix/system/float_processor.li
+C:/files/lisaac_damien/lisaac_damien/lib2_os/unix/system/processor.li
+C:/files/lisaac_damien/lisaac_damien/lib2_os/unix/system/system.li
+C:/files/lisaac_damien/lisaac_damien/lib2_os/unix/system/system_io.li
+C:/files/lisaac_damien/lisaac_damien/lib2_os/unix/file_system/directory_unix.li
+C:/files/lisaac_damien/lisaac_damien/lib2_os/unix/file_system/entry_unix.li
+C:/files/lisaac_damien/lisaac_damien/lib2_os/unix/file_system/file_system.li
+C:/files/lisaac_damien/lisaac_damien/lib2_os/unix/file_system/file_unix.li
+C:/files/lisaac_damien/lisaac_damien/lib2_os/unix/video/event_system.li
+C:/files/lisaac_damien/lisaac_damien/lib2_os/unix/video/keyboard.li
+C:/files/lisaac_damien/lisaac_damien/lib2_os/unix/video/mouse.li
+C:/files/lisaac_damien/lisaac_damien/lib2_os/unix/video/timer.li
+C:/files/lisaac_damien/lisaac_damien/lib2_os/unix/video/video.li
diff --git a/chess/gamestate.li b/chess/gamestate.li
index dff3721..b0c9690 100644
--- a/chess/gamestate.li
+++ b/chess/gamestate.li
@@ -124,7 +124,7 @@ Section Public
         CHESS.camera.add_waypoint3f (0, 0, 0);
       };
     };
-  );
+  ); 
   
   - update square:SQUARE <-
   (
@@ -186,7 +186,7 @@ Section Private
       capture.if {
         move_dest.piece.capture;
       };
-      
+       
       move_orig.clear;
       move_dest.set_piece piece;
       
diff --git a/chess/king.li b/chess/king.li
index 30810b2..afd423b 100644
--- a/chess/king.li
+++ b/chess/king.li
@@ -36,7 +36,7 @@ Section Public
   - name:STRING_CONSTANT := "king";
   
   - model:MODEL; // shared model
-  
+   
   - check_move orig:SQUARE to dest:SQUARE :BOOLEAN <-
   // is legal move?
   ( + result:BOOLEAN;
diff --git a/chess/make.lip b/chess/make.lip
new file mode 100644
index 0000000..2045748
--- /dev/null
+++ b/chess/make.lip
@@ -0,0 +1,43 @@
+//
+// `chess`  LIsaac Project file
+//
+Section Inherit
+
+  + parent:STRING;
+
+Section Private
+
+  + project_root:STRING := "/C:/files/GIT/examples/chess/";
+
+  - project_src_path <- 
+  // Define the project path for source code.
+  (
+     path project_root;
+  );
+  
+  - libopengl_path <-
+  (
+    path "C:/files/GIT/opengl-binding/*";
+    path "C:/files/GIT/math/*";
+  );
+  
+  - front_end <- 
+  // Executed by compiler, before compilation step.
+  (
+    project_src_path;
+    libopengl_path;
+    general_front_end;
+  );
+
+Section Public
+
+  - debug_mode <- 
+  // Run in Debug Mode.
+  (
+    debug 15; // default level [1-20]
+  );
+
+  - clean <- 
+  // Clean project.
+  (
+  );
diff --git a/chess/square.li b/chess/square.li
index 5b654a3..132dd19 100644
--- a/chess/square.li
+++ b/chess/square.li
@@ -30,7 +30,7 @@ Section Header
   - comment     := "square position on chessboard";
   
   - type        := `unsigned int`;
-  - default     := ( CONVERT[INTEGER,SQUARE].on 0 );
+  - default     := ( CONVERT(INTEGER,SQUARE).on 0 );
   
 Section Insert
   
@@ -38,7 +38,7 @@ Section Insert
   
 Section Public
   
-  - value:UINTEGER_32 <- CONVERT[SQUARE,UINTEGER_32].on Self;
+  - value:UINTEGER_32 <- CONVERT(SQUARE,UINTEGER_32).on Self;
   
   //
   // Creation.
@@ -50,7 +50,7 @@ Section Public
     ? {y.in_range 0 to 7};
     
     cod := y*8 + x;
-    CONVERT[UINTEGER_32,SQUARE].on cod
+    CONVERT(UINTEGER_32,SQUARE).on cod
   );
   
   //
diff --git a/chess/world1.li b/chess/world1.li
index a6e9b59..83a602c 100644
--- a/chess/world1.li
+++ b/chess/world1.li
@@ -43,7 +43,7 @@ Section Public
   
   - water_resolution:INTEGER := 64;
   - water_texture:TEXTURE;
-  - water_surface:FAST_ARRAY[REAL_32];
+  - water_surface:FAST_ARRAY(REAL_32);
   
   //
   // shaded water effect 
@@ -63,8 +63,8 @@ Section Public
   
   - initialize:BOOLEAN <- 
   (  
-    + pos,dim:VECTOR3[REAL_32];
-    + sky:FAST_ARRAY[TEXTURE];
+    + pos,dim:VECTOR3(REAL_32);
+    + sky:FAST_ARRAY(TEXTURE);
     + tex:TEXTURE;
     + infolog:STRING;
     
@@ -110,7 +110,7 @@ Section Public
     
     noise := NOISE.create;
     water_texture := renderer.texture2d.create_from (IMAGE.create "textures/water.bmp");
-    water_surface := FAST_ARRAY[REAL_32].create (water_resolution*water_resolution);
+    water_surface := FAST_ARRAY(REAL_32).create (water_resolution*water_resolution);
     
     // create noisy surface
     0.to (water_resolution-1) do { j:INTEGER;      
@@ -123,10 +123,10 @@ Section Public
     // Sky
     //
     
-    pos := VECTOR3[REAL_32].create (0,0,0);
-    dim := VECTOR3[REAL_32].create (1000,500,1000);
+    pos := VECTOR3(REAL_32).create (0,0,0);
+    dim := VECTOR3(REAL_32).create (1000,500,1000);
     
-    sky := FAST_ARRAY[TEXTURE].create_with_capacity 5;
+    sky := FAST_ARRAY(TEXTURE).create_with_capacity 5;
     
     // clamp sky textures to make invisible edges
     // not supported on every GL implementation...
diff --git a/gl_test/.project b/gl_test/.project
new file mode 100644
index 0000000..a426735
--- /dev/null
+++ b/gl_test/.project
@@ -0,0 +1,499 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>gl_test</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.lisaac.ldt.builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.lisaac.ldt.lisaac</nature>
+	</natures>
+	<linkedResources>
+		<link>
+			<name>lib/abstract_evaluator.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/opengl-binding/abstract_renderer/abstract_evaluator.li</location>
+		</link>
+		<link>
+			<name>lib/abstract_keycode.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/opengl-binding/framework/low_level/abstract_keycode.li</location>
+		</link>
+		<link>
+			<name>lib/abstract_string.li</name>
+			<type>1</type>
+			<location>C:/files/lisaac_damien/lisaac_damien/lib2/string/abstract_string.li</location>
+		</link>
+		<link>
+			<name>lib/alpha_test.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/opengl-binding/abstract_renderer/alpha_test.li</location>
+		</link>
+		<link>
+			<name>lib/arb_vertex_buffer_object.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/opengl-binding/opengl/extensions/arb_vertex_buffer_object.li</location>
+		</link>
+		<link>
+			<name>lib/array.li</name>
+			<type>1</type>
+			<location>C:/files/lisaac_damien/lisaac_damien/lib2/collection/array.li</location>
+		</link>
+		<link>
+			<name>lib/arrayed.li</name>
+			<type>1</type>
+			<location>C:/files/lisaac_damien/lisaac_damien/lib2/collection/low_level/arrayed.li</location>
+		</link>
+		<link>
+			<name>lib/arrayed_collection.li</name>
+			<type>1</type>
+			<location>C:/files/lisaac_damien/lisaac_damien/lib2/collection/low_level/arrayed_collection.li</location>
+		</link>
+		<link>
+			<name>lib/blending.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/opengl-binding/abstract_renderer/blending.li</location>
+		</link>
+		<link>
+			<name>lib/block.li</name>
+			<type>1</type>
+			<location>C:/files/lisaac_damien/lisaac_damien/lib2/base/block.li</location>
+		</link>
+		<link>
+			<name>lib/boolean.li</name>
+			<type>1</type>
+			<location>C:/files/lisaac_damien/lisaac_damien/lib2/base/boolean.li</location>
+		</link>
+		<link>
+			<name>lib/camera.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/opengl-binding/3D/camera.li</location>
+		</link>
+		<link>
+			<name>lib/capabilities.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/opengl-binding/abstract_renderer/capabilities.li</location>
+		</link>
+		<link>
+			<name>lib/character.li</name>
+			<type>1</type>
+			<location>C:/files/lisaac_damien/lisaac_damien/lib2/base/character.li</location>
+		</link>
+		<link>
+			<name>lib/character_ref.li</name>
+			<type>1</type>
+			<location>C:/files/lisaac_damien/lisaac_damien/lib2/base/low_level/character_ref.li</location>
+		</link>
+		<link>
+			<name>lib/collection.li</name>
+			<type>1</type>
+			<location>C:/files/lisaac_damien/lisaac_damien/lib2/collection/low_level/collection.li</location>
+		</link>
+		<link>
+			<name>lib/color.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/opengl-binding/abstract_renderer/color.li</location>
+		</link>
+		<link>
+			<name>lib/comparable.li</name>
+			<type>1</type>
+			<location>C:/files/lisaac_damien/lisaac_damien/lib2/kernel/comparable.li</location>
+		</link>
+		<link>
+			<name>lib/cone.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/opengl-binding/3D/primitives/cone.li</location>
+		</link>
+		<link>
+			<name>lib/convert.li</name>
+			<type>1</type>
+			<location>C:/files/lisaac_damien/lisaac_damien/lib2/kernel/convert.li</location>
+		</link>
+		<link>
+			<name>lib/cylinder.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/opengl-binding/3D/primitives/cylinder.li</location>
+		</link>
+		<link>
+			<name>lib/directory.li</name>
+			<type>1</type>
+			<location>C:/files/lisaac_damien/lisaac_damien/lib2/file_system/directory.li</location>
+		</link>
+		<link>
+			<name>lib/display_list.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/opengl-binding/abstract_renderer/display_list.li</location>
+		</link>
+		<link>
+			<name>lib/entry.li</name>
+			<type>1</type>
+			<location>C:/files/lisaac_damien/lisaac_damien/lib2/file_system/entry.li</location>
+		</link>
+		<link>
+			<name>lib/error.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/opengl-binding/abstract_renderer/error.li</location>
+		</link>
+		<link>
+			<name>lib/evaluator1d.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/opengl-binding/abstract_renderer/evaluator1d.li</location>
+		</link>
+		<link>
+			<name>lib/evaluator2d.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/opengl-binding/abstract_renderer/evaluator2d.li</location>
+		</link>
+		<link>
+			<name>lib/event_listener.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/opengl-binding/framework/event_listener.li</location>
+		</link>
+		<link>
+			<name>lib/fast_array.li</name>
+			<type>1</type>
+			<location>C:/files/lisaac_damien/lisaac_damien/lib2/collection/fast_array.li</location>
+		</link>
+		<link>
+			<name>lib/file_system.li</name>
+			<type>1</type>
+			<location>C:/files/lisaac_damien/lisaac_damien/lib2_os/unix/file_system/file_system.li</location>
+		</link>
+		<link>
+			<name>lib/float_map.li</name>
+			<type>1</type>
+			<location>C:/files/lisaac_damien/lisaac_damien/lib2/number/low_level/float_map.li</location>
+		</link>
+		<link>
+			<name>lib/float_map32.li</name>
+			<type>1</type>
+			<location>C:/files/lisaac_damien/lisaac_damien/lib2/number/low_level/float_map32.li</location>
+		</link>
+		<link>
+			<name>lib/float_real.li</name>
+			<type>1</type>
+			<location>C:/files/lisaac_damien/lisaac_damien/lib2/number/low_level/float_real.li</location>
+		</link>
+		<link>
+			<name>lib/fog.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/opengl-binding/abstract_renderer/fog.li</location>
+		</link>
+		<link>
+			<name>lib/font.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/opengl-binding/abstract_renderer/font.li</location>
+		</link>
+		<link>
+			<name>lib/framework.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/opengl-binding/framework/framework.li</location>
+		</link>
+		<link>
+			<name>lib/framework_any.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/opengl-binding/framework/low_level/framework_any.li</location>
+		</link>
+		<link>
+			<name>lib/framework_event.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/opengl-binding/framework/windows/framework_event.li</location>
+		</link>
+		<link>
+			<name>lib/fs_min.li</name>
+			<type>1</type>
+			<location>C:/files/lisaac_damien/lisaac_damien/lib2/file_system/fs_min.li</location>
+		</link>
+		<link>
+			<name>lib/gl_display_list.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/opengl-binding/opengl/gl_display_list.li</location>
+		</link>
+		<link>
+			<name>lib/gl_extension.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/opengl-binding/opengl/gl_extension.li</location>
+		</link>
+		<link>
+			<name>lib/hashable.li</name>
+			<type>1</type>
+			<location>C:/files/lisaac_damien/lisaac_damien/lib2/kernel/hashable.li</location>
+		</link>
+		<link>
+			<name>lib/i_dont_know_prototyping.li</name>
+			<type>1</type>
+			<location>C:/files/lisaac_damien/lisaac_damien/lib2/kernel/i_dont_know_prototyping.li</location>
+		</link>
+		<link>
+			<name>lib/image.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/opengl-binding/images/image.li</location>
+		</link>
+		<link>
+			<name>lib/image_format.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/opengl-binding/images/image_format.li</location>
+		</link>
+		<link>
+			<name>lib/index_buffer.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/opengl-binding/abstract_renderer/index_buffer.li</location>
+		</link>
+		<link>
+			<name>lib/integer.li</name>
+			<type>1</type>
+			<location>C:/files/lisaac_damien/lisaac_damien/lib2/number/integer.li</location>
+		</link>
+		<link>
+			<name>lib/io.li</name>
+			<type>1</type>
+			<location>C:/files/lisaac_damien/lisaac_damien/lib2/io/io.li</location>
+		</link>
+		<link>
+			<name>lib/keycode.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/opengl-binding/framework/windows/keycode.li</location>
+		</link>
+		<link>
+			<name>lib/light.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/opengl-binding/abstract_renderer/light.li</location>
+		</link>
+		<link>
+			<name>lib/linked_collection.li</name>
+			<type>1</type>
+			<location>C:/files/lisaac_damien/lisaac_damien/lib2/collection/low_level/linked_collection.li</location>
+		</link>
+		<link>
+			<name>lib/linked_list.li</name>
+			<type>1</type>
+			<location>C:/files/lisaac_damien/lisaac_damien/lib2/collection/linked_list.li</location>
+		</link>
+		<link>
+			<name>lib/log.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/opengl-binding/framework/log.li</location>
+		</link>
+		<link>
+			<name>lib/material.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/opengl-binding/abstract_renderer/material.li</location>
+		</link>
+		<link>
+			<name>lib/md2_frame.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/opengl-binding/3D/models/md2_frame.li</location>
+		</link>
+		<link>
+			<name>lib/md2_model.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/opengl-binding/3D/models/md2_model.li</location>
+		</link>
+		<link>
+			<name>lib/md2_normals.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/opengl-binding/3D/models/md2_normals.li</location>
+		</link>
+		<link>
+			<name>lib/md2_triangle.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/opengl-binding/3D/models/md2_triangle.li</location>
+		</link>
+		<link>
+			<name>lib/md2_vertex.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/opengl-binding/3D/models/md2_vertex.li</location>
+		</link>
+		<link>
+			<name>lib/model.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/opengl-binding/3D/model.li</location>
+		</link>
+		<link>
+			<name>lib/native_array.li</name>
+			<type>1</type>
+			<location>C:/files/lisaac_damien/lisaac_damien/lib2/collection/low_level/native_array.li</location>
+		</link>
+		<link>
+			<name>lib/numeric.li</name>
+			<type>1</type>
+			<location>C:/files/lisaac_damien/lisaac_damien/lib2/number/low_level/numeric.li</location>
+		</link>
+		<link>
+			<name>lib/object.li</name>
+			<type>1</type>
+			<location>C:/files/lisaac_damien/lisaac_damien/lib2/kernel/object.li</location>
+		</link>
+		<link>
+			<name>lib/opengl.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/opengl-binding/framework/windows/opengl.li</location>
+		</link>
+		<link>
+			<name>lib/opengl_abstract.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/opengl-binding/opengl/opengl_abstract.li</location>
+		</link>
+		<link>
+			<name>lib/opengl_specific.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/opengl-binding/opengl/opengl_specific.li</location>
+		</link>
+		<link>
+			<name>lib/output_stream.li</name>
+			<type>1</type>
+			<location>C:/files/lisaac_damien/lisaac_damien/lib2/io/output_stream.li</location>
+		</link>
+		<link>
+			<name>lib/platform.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/opengl-binding/framework/windows/platform.li</location>
+		</link>
+		<link>
+			<name>lib/real.li</name>
+			<type>1</type>
+			<location>C:/files/lisaac_damien/lisaac_damien/lib2/number/real.li</location>
+		</link>
+		<link>
+			<name>lib/real_32.li</name>
+			<type>1</type>
+			<location>C:/files/lisaac_damien/lisaac_damien/lib2/number/real_32.li</location>
+		</link>
+		<link>
+			<name>lib/renderer.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/opengl-binding/abstract_renderer/renderer.li</location>
+		</link>
+		<link>
+			<name>lib/reshape.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/opengl-binding/abstract_renderer/reshape.li</location>
+		</link>
+		<link>
+			<name>lib/rgb.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/opengl-binding/abstract_renderer/rgb.li</location>
+		</link>
+		<link>
+			<name>lib/rgba.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/opengl-binding/abstract_renderer/rgba.li</location>
+		</link>
+		<link>
+			<name>lib/scene.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/opengl-binding/framework/scene.li</location>
+		</link>
+		<link>
+			<name>lib/scissor.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/opengl-binding/abstract_renderer/scissor.li</location>
+		</link>
+		<link>
+			<name>lib/shader.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/opengl-binding/abstract_renderer/shader.li</location>
+		</link>
+		<link>
+			<name>lib/sphere.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/opengl-binding/3D/primitives/sphere.li</location>
+		</link>
+		<link>
+			<name>lib/state.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/opengl-binding/abstract_renderer/state.li</location>
+		</link>
+		<link>
+			<name>lib/std_error.li</name>
+			<type>1</type>
+			<location>C:/files/lisaac_damien/lisaac_damien/lib2/io/std_error.li</location>
+		</link>
+		<link>
+			<name>lib/std_file.li</name>
+			<type>1</type>
+			<location>C:/files/lisaac_damien/lisaac_damien/lib2/file_system/std_file.li</location>
+		</link>
+		<link>
+			<name>lib/std_output.li</name>
+			<type>1</type>
+			<location>C:/files/lisaac_damien/lisaac_damien/lib2/io/std_output.li</location>
+		</link>
+		<link>
+			<name>lib/string.li</name>
+			<type>1</type>
+			<location>C:/files/lisaac_damien/lisaac_damien/lib2/string/string.li</location>
+		</link>
+		<link>
+			<name>lib/system_io.li</name>
+			<type>1</type>
+			<location>C:/files/lisaac_damien/lisaac_damien/lib2_os/unix/system/system_io.li</location>
+		</link>
+		<link>
+			<name>lib/terrain.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/opengl-binding/3D/terrain.li</location>
+		</link>
+		<link>
+			<name>lib/texture.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/opengl-binding/abstract_renderer/texture.li</location>
+		</link>
+		<link>
+			<name>lib/transform.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/opengl-binding/abstract_renderer/transform.li</location>
+		</link>
+		<link>
+			<name>lib/traversable.li</name>
+			<type>1</type>
+			<location>C:/files/lisaac_damien/lisaac_damien/lib2/collection/low_level/traversable.li</location>
+		</link>
+		<link>
+			<name>lib/uinteger_32.li</name>
+			<type>1</type>
+			<location>C:/files/lisaac_damien/lisaac_damien/lib2/number/uinteger_32.li</location>
+		</link>
+		<link>
+			<name>lib/unsigned_integer.li</name>
+			<type>1</type>
+			<location>C:/files/lisaac_damien/lisaac_damien/lib2/number/low_level/unsigned_integer.li</location>
+		</link>
+		<link>
+			<name>lib/vector2.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/math/vector2.li</location>
+		</link>
+		<link>
+			<name>lib/vector3.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/math/vector3.li</location>
+		</link>
+		<link>
+			<name>lib/vector4.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/math/vector4.li</location>
+		</link>
+		<link>
+			<name>lib/vertex.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/opengl-binding/abstract_renderer/vertex.li</location>
+		</link>
+		<link>
+			<name>lib/vertex_buffer.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/opengl-binding/abstract_renderer/vertex_buffer.li</location>
+		</link>
+		<link>
+			<name>lib/viewport.li</name>
+			<type>1</type>
+			<location>C:/files/GIT/opengl-binding/abstract_renderer/viewport.li</location>
+		</link>
+	</linkedResources>
+</projectDescription>
diff --git a/gl_test/current_path.txt b/gl_test/current_path.txt
new file mode 100644
index 0000000..939530c
--- /dev/null
+++ b/gl_test/current_path.txt
@@ -0,0 +1,355 @@
+C:/files/GIT/examples/gl_test/framework_test.li
+C:/files/GIT/examples/gl_test/gui_test.li
+C:/files/GIT/examples/gl_test/my_event_listener.li
+C:/files/GIT/examples/gl_test/my_object.li
+C:/files/GIT/examples/gl_test/my_scene1.li
+C:/files/GIT/examples/gl_test/my_scene10.li
+C:/files/GIT/examples/gl_test/my_scene11.li
+C:/files/GIT/examples/gl_test/my_scene12.li
+C:/files/GIT/examples/gl_test/my_scene2.li
+C:/files/GIT/examples/gl_test/my_scene3.li
+C:/files/GIT/examples/gl_test/my_scene4.li
+C:/files/GIT/examples/gl_test/my_scene5.li
+C:/files/GIT/examples/gl_test/my_scene6.li
+C:/files/GIT/examples/gl_test/my_scene7.li
+C:/files/GIT/examples/gl_test/my_scene8.li
+C:/files/GIT/examples/gl_test/my_scene9.li
+C:/files/GIT/examples/gl_test/test_any.li
+C:/files/GIT/examples/gl_test/test_scene.li
+C:/files/GIT/opengl-binding/3D/camera.li
+C:/files/GIT/opengl-binding/3D/model.li
+C:/files/GIT/opengl-binding/3D/models/md2_frame.li
+C:/files/GIT/opengl-binding/3D/models/md2_model.li
+C:/files/GIT/opengl-binding/3D/models/md2_normals.li
+C:/files/GIT/opengl-binding/3D/models/md2_triangle.li
+C:/files/GIT/opengl-binding/3D/models/md2_vertex.li
+C:/files/GIT/opengl-binding/3D/noise.li
+C:/files/GIT/opengl-binding/3D/particles/bounce_plane.li
+C:/files/GIT/opengl-binding/3D/particles/constraint.li
+C:/files/GIT/opengl-binding/3D/particles/kill_plane.li
+C:/files/GIT/opengl-binding/3D/particles/particle.li
+C:/files/GIT/opengl-binding/3D/particles/particle_system.li
+C:/files/GIT/opengl-binding/3D/particles/point_force.li
+C:/files/GIT/opengl-binding/3D/primitives/cone.li
+C:/files/GIT/opengl-binding/3D/primitives/cylinder.li
+C:/files/GIT/opengl-binding/3D/primitives/sphere.li
+C:/files/GIT/opengl-binding/3D/skybox.li
+C:/files/GIT/opengl-binding/3D/terrain.li
+C:/files/GIT/opengl-binding/abstract_renderer/abstract_evaluator.li
+C:/files/GIT/opengl-binding/abstract_renderer/accum_buffer.li
+C:/files/GIT/opengl-binding/abstract_renderer/alpha_test.li
+C:/files/GIT/opengl-binding/abstract_renderer/blending.li
+C:/files/GIT/opengl-binding/abstract_renderer/capabilities.li
+C:/files/GIT/opengl-binding/abstract_renderer/color.li
+C:/files/GIT/opengl-binding/abstract_renderer/color_buffer.li
+C:/files/GIT/opengl-binding/abstract_renderer/culling.li
+C:/files/GIT/opengl-binding/abstract_renderer/depth_buffer.li
+C:/files/GIT/opengl-binding/abstract_renderer/display_list.li
+C:/files/GIT/opengl-binding/abstract_renderer/error.li
+C:/files/GIT/opengl-binding/abstract_renderer/evaluator1d.li
+C:/files/GIT/opengl-binding/abstract_renderer/evaluator2d.li
+C:/files/GIT/opengl-binding/abstract_renderer/fog.li
+C:/files/GIT/opengl-binding/abstract_renderer/font.li
+C:/files/GIT/opengl-binding/abstract_renderer/index_buffer.li
+C:/files/GIT/opengl-binding/abstract_renderer/light.li
+C:/files/GIT/opengl-binding/abstract_renderer/material.li
+C:/files/GIT/opengl-binding/abstract_renderer/name_stack.li
+C:/files/GIT/opengl-binding/abstract_renderer/plane.li
+C:/files/GIT/opengl-binding/abstract_renderer/quadrics.li
+C:/files/GIT/opengl-binding/abstract_renderer/renderer.li
+C:/files/GIT/opengl-binding/abstract_renderer/reshape.li
+C:/files/GIT/opengl-binding/abstract_renderer/rgb.li
+C:/files/GIT/opengl-binding/abstract_renderer/rgba.li
+C:/files/GIT/opengl-binding/abstract_renderer/scissor.li
+C:/files/GIT/opengl-binding/abstract_renderer/shader.li
+C:/files/GIT/opengl-binding/abstract_renderer/state.li
+C:/files/GIT/opengl-binding/abstract_renderer/stencil_buffer.li
+C:/files/GIT/opengl-binding/abstract_renderer/texture.li
+C:/files/GIT/opengl-binding/abstract_renderer/transform.li
+C:/files/GIT/opengl-binding/abstract_renderer/vertex.li
+C:/files/GIT/opengl-binding/abstract_renderer/vertex_buffer.li
+C:/files/GIT/opengl-binding/abstract_renderer/viewport.li
+C:/files/GIT/opengl-binding/framework/event_listener.li
+C:/files/GIT/opengl-binding/framework/framework.li
+C:/files/GIT/opengl-binding/framework/log.li
+C:/files/GIT/opengl-binding/framework/low_level/abstract_keycode.li
+C:/files/GIT/opengl-binding/framework/low_level/framework_any.li
+C:/files/GIT/opengl-binding/framework/scene.li
+C:/files/GIT/opengl-binding/framework/unix/framework_event.li
+C:/files/GIT/opengl-binding/framework/unix/gl_font.li
+C:/files/GIT/opengl-binding/framework/unix/keycode.li
+C:/files/GIT/opengl-binding/framework/unix/opengl.li
+C:/files/GIT/opengl-binding/framework/unix/platform.li
+C:/files/GIT/opengl-binding/framework/windows/framework_event.li
+C:/files/GIT/opengl-binding/framework/windows/gl_font.li
+C:/files/GIT/opengl-binding/framework/windows/keycode.li
+C:/files/GIT/opengl-binding/framework/windows/opengl.li
+C:/files/GIT/opengl-binding/framework/windows/platform.li
+C:/files/GIT/opengl-binding/glspec2li.li
+C:/files/GIT/opengl-binding/gui/gl_desk.li
+C:/files/GIT/opengl-binding/gui/gl_driver.li
+C:/files/GIT/opengl-binding/gui/g_gldraw.li
+C:/files/GIT/opengl-binding/gui/unix/gl_event_system.li
+C:/files/GIT/opengl-binding/gui/windows/gl_event_system.li
+C:/files/GIT/opengl-binding/images/bmp.li
+C:/files/GIT/opengl-binding/images/image.li
+C:/files/GIT/opengl-binding/images/image_format.li
+C:/files/GIT/opengl-binding/images/tga.li
+C:/files/GIT/opengl-binding/images/tga_header.li
+C:/files/GIT/opengl-binding/opengl/extensions/arb_fragment_shader.li
+C:/files/GIT/opengl-binding/opengl/extensions/arb_multitexture.li
+C:/files/GIT/opengl-binding/opengl/extensions/arb_shader_object.li
+C:/files/GIT/opengl-binding/opengl/extensions/arb_shading_language_100.li
+C:/files/GIT/opengl-binding/opengl/extensions/arb_vertex_buffer_object.li
+C:/files/GIT/opengl-binding/opengl/extensions/arb_vertex_shader.li
+C:/files/GIT/opengl-binding/opengl/gl.li
+C:/files/GIT/opengl-binding/opengl/gl_abstract_texture.li
+C:/files/GIT/opengl-binding/opengl/gl_accum_buffer.li
+C:/files/GIT/opengl-binding/opengl/gl_alpha_test.li
+C:/files/GIT/opengl-binding/opengl/gl_blending.li
+C:/files/GIT/opengl-binding/opengl/gl_color_buffer.li
+C:/files/GIT/opengl-binding/opengl/gl_culling.li
+C:/files/GIT/opengl-binding/opengl/gl_depth_buffer.li
+C:/files/GIT/opengl-binding/opengl/gl_display_list.li
+C:/files/GIT/opengl-binding/opengl/gl_error.li
+C:/files/GIT/opengl-binding/opengl/gl_evaluator1d.li
+C:/files/GIT/opengl-binding/opengl/gl_evaluator2d.li
+C:/files/GIT/opengl-binding/opengl/gl_extension.li
+C:/files/GIT/opengl-binding/opengl/gl_fog.li
+C:/files/GIT/opengl-binding/opengl/gl_font_abstract.li
+C:/files/GIT/opengl-binding/opengl/gl_index_buffer.li
+C:/files/GIT/opengl-binding/opengl/gl_light.li
+C:/files/GIT/opengl-binding/opengl/gl_material.li
+C:/files/GIT/opengl-binding/opengl/gl_name_stack.li
+C:/files/GIT/opengl-binding/opengl/gl_plane.li
+C:/files/GIT/opengl-binding/opengl/gl_quadrics.li
+C:/files/GIT/opengl-binding/opengl/gl_scissor.li
+C:/files/GIT/opengl-binding/opengl/gl_shader.li
+C:/files/GIT/opengl-binding/opengl/gl_stencil_buffer.li
+C:/files/GIT/opengl-binding/opengl/gl_texture1d.li
+C:/files/GIT/opengl-binding/opengl/gl_texture2d.li
+C:/files/GIT/opengl-binding/opengl/gl_transform.li
+C:/files/GIT/opengl-binding/opengl/gl_vertex_array.li
+C:/files/GIT/opengl-binding/opengl/gl_vertex_buffer.li
+C:/files/GIT/opengl-binding/opengl/opengl_abstract.li
+C:/files/GIT/opengl-binding/opengl/opengl_specific.li
+C:/files/GIT/math/low_level/abstract_matrix.li
+C:/files/GIT/math/matrix.li
+C:/files/GIT/math/matrix4.li
+C:/files/GIT/math/vector2.li
+C:/files/GIT/math/vector3.li
+C:/files/GIT/math/vector4.li
+C:/files/lisaac_damien/lisaac_damien/lib2/base/block.li
+C:/files/lisaac_damien/lisaac_damien/lib2/base/boolean.li
+C:/files/lisaac_damien/lisaac_damien/lib2/base/character.li
+C:/files/lisaac_damien/lisaac_damien/lib2/base/char_unicode.li
+C:/files/lisaac_damien/lisaac_damien/lib2/base/enum.li
+C:/files/lisaac_damien/lisaac_damien/lib2/base/false.li
+C:/files/lisaac_damien/lisaac_damien/lib2/base/low_level/character_ref.li
+C:/files/lisaac_damien/lisaac_damien/lib2/base/reference.li
+C:/files/lisaac_damien/lisaac_damien/lib2/base/tools.li
+C:/files/lisaac_damien/lisaac_damien/lib2/base/true.li
+C:/files/lisaac_damien/lisaac_damien/lib2/collection/array.li
+C:/files/lisaac_damien/lisaac_damien/lib2/collection/array2.li
+C:/files/lisaac_damien/lisaac_damien/lib2/collection/array3.li
+C:/files/lisaac_damien/lisaac_damien/lib2/collection/avl_dictionary.li
+C:/files/lisaac_damien/lisaac_damien/lib2/collection/avl_set.li
+C:/files/lisaac_damien/lisaac_damien/lib2/collection/fast_array.li
+C:/files/lisaac_damien/lisaac_damien/lib2/collection/fast_array2.li
+C:/files/lisaac_damien/lisaac_damien/lib2/collection/fast_array3.li
+C:/files/lisaac_damien/lisaac_damien/lib2/collection/hashed_dictionary.li
+C:/files/lisaac_damien/lisaac_damien/lib2/collection/hashed_set.li
+C:/files/lisaac_damien/lisaac_damien/lib2/collection/iterator.li
+C:/files/lisaac_damien/lisaac_damien/lib2/collection/linked2_list.li
+C:/files/lisaac_damien/lisaac_damien/lib2/collection/linked_list.li
+C:/files/lisaac_damien/lisaac_damien/lib2/collection/linked_xor_list.li
+C:/files/lisaac_damien/lisaac_damien/lib2/collection/low_level/any_avl_dictionary_node.li
+C:/files/lisaac_damien/lisaac_damien/lib2/collection/low_level/any_avl_set_node.li
+C:/files/lisaac_damien/lisaac_damien/lib2/collection/low_level/any_hashed_bijective_dictionary_node.li
+C:/files/lisaac_damien/lisaac_damien/lib2/collection/low_level/any_hashed_dictionary_node.li
+C:/files/lisaac_damien/lisaac_damien/lib2/collection/low_level/any_hashed_set_node.li
+C:/files/lisaac_damien/lisaac_damien/lib2/collection/low_level/any_linked_list_node.li
+C:/files/lisaac_damien/lisaac_damien/lib2/collection/low_level/any_two_way_linked_list_node.li
+C:/files/lisaac_damien/lisaac_damien/lib2/collection/low_level/arrayed.li
+C:/files/lisaac_damien/lisaac_damien/lib2/collection/low_level/arrayed_collection.li
+C:/files/lisaac_damien/lisaac_damien/lib2/collection/low_level/avl_constants.li
+C:/files/lisaac_damien/lisaac_damien/lib2/collection/low_level/avl_dictionary_node.li
+C:/files/lisaac_damien/lisaac_damien/lib2/collection/low_level/avl_set_node.li
+C:/files/lisaac_damien/lisaac_damien/lib2/collection/low_level/avl_tree.li
+C:/files/lisaac_damien/lisaac_damien/lib2/collection/low_level/avl_tree_node.li
+C:/files/lisaac_damien/lisaac_damien/lib2/collection/low_level/collection.li
+C:/files/lisaac_damien/lisaac_damien/lib2/collection/low_level/collection2.li
+C:/files/lisaac_damien/lisaac_damien/lib2/collection/low_level/collection3.li
+C:/files/lisaac_damien/lisaac_damien/lib2/collection/low_level/dictionary.li
+C:/files/lisaac_damien/lisaac_damien/lib2/collection/low_level/hashed_dictionary_node.li
+C:/files/lisaac_damien/lisaac_damien/lib2/collection/low_level/hashed_set_node.li
+C:/files/lisaac_damien/lisaac_damien/lib2/collection/low_level/hash_table_size.li
+C:/files/lisaac_damien/lisaac_damien/lib2/collection/low_level/linked2_list_node.li
+C:/files/lisaac_damien/lisaac_damien/lib2/collection/low_level/linked_collection.li
+C:/files/lisaac_damien/lisaac_damien/lib2/collection/low_level/linked_list_node.li
+C:/files/lisaac_damien/lisaac_damien/lib2/collection/low_level/linked_xor_node.li
+C:/files/lisaac_damien/lisaac_damien/lib2/collection/low_level/native_array.li
+C:/files/lisaac_damien/lisaac_damien/lib2/collection/low_level/native_array_volatile.li
+C:/files/lisaac_damien/lisaac_damien/lib2/collection/low_level/set.li
+C:/files/lisaac_damien/lisaac_damien/lib2/collection/low_level/simple_dictionary.li
+C:/files/lisaac_damien/lisaac_damien/lib2/collection/low_level/traversable.li
+C:/files/lisaac_damien/lisaac_damien/lib2/file_system/directory.li
+C:/files/lisaac_damien/lisaac_damien/lib2/file_system/entry.li
+C:/files/lisaac_damien/lisaac_damien/lib2/file_system/fs_min.li
+C:/files/lisaac_damien/lisaac_damien/lib2/file_system/std_file.li
+C:/files/lisaac_damien/lisaac_damien/lib2/format/ai/ai_alias.li
+C:/files/lisaac_damien/lisaac_damien/lib2/format/ai/ai_bezier.li
+C:/files/lisaac_damien/lisaac_damien/lib2/format/ai/ai_color.li
+C:/files/lisaac_damien/lisaac_damien/lib2/format/ai/ai_file.li
+C:/files/lisaac_damien/lisaac_damien/lib2/format/ai/ai_layer.li
+C:/files/lisaac_damien/lisaac_damien/lib2/format/ai/ai_line.li
+C:/files/lisaac_damien/lisaac_damien/lib2/format/ai/ai_move.li
+C:/files/lisaac_damien/lisaac_damien/lib2/format/ai/ai_operation.li
+C:/files/lisaac_damien/lisaac_damien/lib2/format/ai/ai_parser.li
+C:/files/lisaac_damien/lisaac_damien/lib2/format/bmp/bmp_file.li
+C:/files/lisaac_damien/lisaac_damien/lib2/format/bmp/bmp_header.li
+C:/files/lisaac_damien/lisaac_damien/lib2/format/bmp/format_bmp.li
+C:/files/lisaac_damien/lisaac_damien/lib2/format/format_img.li
+C:/files/lisaac_damien/lisaac_damien/lib2/graphics/bitmap.li
+C:/files/lisaac_damien/lisaac_damien/lib2/graphics/bmp_line.li
+C:/files/lisaac_damien/lisaac_damien/lib2/graphics/edge.li
+C:/files/lisaac_damien/lisaac_damien/lib2/graphics/low_level/abstract_bitmap.li
+C:/files/lisaac_damien/lisaac_damien/lib2/graphics/low_level/abstract_bmp_line.li
+C:/files/lisaac_damien/lisaac_damien/lib2/graphics/low_level/pixel.li
+C:/files/lisaac_damien/lisaac_damien/lib2/graphics/pixel_15.li
+C:/files/lisaac_damien/lisaac_damien/lib2/graphics/pixel_16.li
+C:/files/lisaac_damien/lisaac_damien/lib2/graphics/pixel_24.li
+C:/files/lisaac_damien/lisaac_damien/lib2/graphics/pixel_32.li
+C:/files/lisaac_damien/lisaac_damien/lib2/gui/clipping/area.li
+C:/files/lisaac_damien/lisaac_damien/lib2/gui/clipping/area_mask.li
+C:/files/lisaac_damien/lisaac_damien/lib2/gui/clipping/clip.li
+C:/files/lisaac_damien/lisaac_damien/lib2/gui/clipping/limit_x.li
+C:/files/lisaac_damien/lisaac_damien/lib2/gui/clipping/limit_y.li
+C:/files/lisaac_damien/lisaac_damien/lib2/gui/clipping/plan.li
+C:/files/lisaac_damien/lisaac_damien/lib2/gui/desk.li
+C:/files/lisaac_damien/lisaac_damien/lib2/gui/event/event.li
+C:/files/lisaac_damien/lisaac_damien/lib2/gui/event/event_gui.li
+C:/files/lisaac_damien/lisaac_damien/lib2/gui/event/event_keyboard.li
+C:/files/lisaac_damien/lisaac_damien/lib2/gui/event/event_mouse.li
+C:/files/lisaac_damien/lisaac_damien/lib2/gui/event/event_timer.li
+C:/files/lisaac_damien/lisaac_damien/lib2/gui/g_button.li
+C:/files/lisaac_damien/lisaac_damien/lib2/gui/g_check.li
+C:/files/lisaac_damien/lisaac_damien/lib2/gui/g_img.li
+C:/files/lisaac_damien/lisaac_damien/lib2/gui/g_in.li
+C:/files/lisaac_damien/lisaac_damien/lib2/gui/g_out.li
+C:/files/lisaac_damien/lisaac_damien/lib2/gui/g_raw.li
+C:/files/lisaac_damien/lisaac_damien/lib2/gui/g_win_in.li
+C:/files/lisaac_damien/lisaac_damien/lib2/gui/g_win_out.li
+C:/files/lisaac_damien/lisaac_damien/lib2/gui/g_win_out_trans_test.li
+C:/files/lisaac_damien/lisaac_damien/lib2/gui/input/input.li
+C:/files/lisaac_damien/lisaac_damien/lib2/gui/input/input_keyboard.li
+C:/files/lisaac_damien/lisaac_damien/lib2/gui/low_level/g_binary_expr.li
+C:/files/lisaac_damien/lisaac_damien/lib2/gui/low_level/g_div_expr.li
+C:/files/lisaac_damien/lisaac_damien/lib2/gui/low_level/g_elevator.li
+C:/files/lisaac_damien/lisaac_damien/lib2/gui/low_level/g_expr.li
+C:/files/lisaac_damien/lisaac_damien/lib2/gui/low_level/g_group.li
+C:/files/lisaac_damien/lisaac_damien/lib2/gui/low_level/g_or_expr.li
+C:/files/lisaac_damien/lisaac_damien/lib2/gui/low_level/g_win_in_intern.li
+C:/files/lisaac_damien/lisaac_damien/lib2/gui/low_level/inbox.li
+C:/files/lisaac_damien/lisaac_damien/lib2/gui/low_level/virtual_screen.li
+C:/files/lisaac_damien/lisaac_damien/lib2/gui/old/group_in/grp_tree.li
+C:/files/lisaac_damien/lisaac_damien/lib2/gui/old/label/lab_key.li
+C:/files/lisaac_damien/lisaac_damien/lib2/guii/action.li
+C:/files/lisaac_damien/lisaac_damien/lib2/guii/check.li
+C:/files/lisaac_damien/lisaac_damien/lib2/guii/dimension.li
+C:/files/lisaac_damien/lisaac_damien/lib2/guii/drop_down_menu.li
+C:/files/lisaac_damien/lisaac_damien/lib2/guii/essai_drop_down.li
+C:/files/lisaac_damien/lisaac_damien/lib2/guii/essai_light.li
+C:/files/lisaac_damien/lisaac_damien/lib2/guii/guii.li
+C:/files/lisaac_damien/lisaac_damien/lib2/guii/g_page.li
+C:/files/lisaac_damien/lisaac_damien/lib2/guii/inode.li
+C:/files/lisaac_damien/lisaac_damien/lib2/guii/internal_inode.li
+C:/files/lisaac_damien/lisaac_damien/lib2/guii/menu_bar.li
+C:/files/lisaac_damien/lisaac_damien/lib2/guii/menu_h.li
+C:/files/lisaac_damien/lisaac_damien/lib2/guii/menu_h_out.li
+C:/files/lisaac_damien/lisaac_damien/lib2/guii/menu_v.li
+C:/files/lisaac_damien/lisaac_damien/lib2/guii/menu_v_out.li
+C:/files/lisaac_damien/lisaac_damien/lib2/guii/page.li
+C:/files/lisaac_damien/lisaac_damien/lib2/guii/raw_h.li
+C:/files/lisaac_damien/lisaac_damien/lib2/guii/raw_v.li
+C:/files/lisaac_damien/lisaac_damien/lib2/guii/test.li
+C:/files/lisaac_damien/lisaac_damien/lib2/guii/test_gui2.li
+C:/files/lisaac_damien/lisaac_damien/lib2/guii/tool_bar.li
+C:/files/lisaac_damien/lisaac_damien/lib2/guii/window.li
+C:/files/lisaac_damien/lisaac_damien/lib2/guii/win_in.li
+C:/files/lisaac_damien/lisaac_damien/lib2/io/file_input_stream.li
+C:/files/lisaac_damien/lisaac_damien/lib2/io/file_output_stream.li
+C:/files/lisaac_damien/lisaac_damien/lib2/io/input_stream.li
+C:/files/lisaac_damien/lisaac_damien/lib2/io/io.li
+C:/files/lisaac_damien/lisaac_damien/lib2/io/output_stream.li
+C:/files/lisaac_damien/lisaac_damien/lib2/io/std_error.li
+C:/files/lisaac_damien/lisaac_damien/lib2/io/std_input.li
+C:/files/lisaac_damien/lisaac_damien/lib2/io/std_input_output.li
+C:/files/lisaac_damien/lisaac_damien/lib2/io/std_output.li
+C:/files/lisaac_damien/lisaac_damien/lib2/kernel/comparable.li
+C:/files/lisaac_damien/lisaac_damien/lib2/kernel/convert.li
+C:/files/lisaac_damien/lisaac_damien/lib2/kernel/hashable.li
+C:/files/lisaac_damien/lisaac_damien/lib2/kernel/i_dont_know_prototyping.li
+C:/files/lisaac_damien/lisaac_damien/lib2/kernel/object.li
+C:/files/lisaac_damien/lisaac_damien/lib2/kernel/pointer.li
+C:/files/lisaac_damien/lisaac_damien/lib2/kernel/safe_equal.li
+C:/files/lisaac_damien/lisaac_damien/lib2/memory/memory.li
+C:/files/lisaac_damien/lisaac_damien/lib2/number/integer.li
+C:/files/lisaac_damien/lisaac_damien/lib2/number/integer_16.li
+C:/files/lisaac_damien/lisaac_damien/lib2/number/integer_32.li
+C:/files/lisaac_damien/lisaac_damien/lib2/number/integer_64.li
+C:/files/lisaac_damien/lisaac_damien/lib2/number/integer_8.li
+C:/files/lisaac_damien/lisaac_damien/lib2/number/integer_big.li
+C:/files/lisaac_damien/lisaac_damien/lib2/number/low_level/fixed_real.li
+C:/files/lisaac_damien/lisaac_damien/lib2/number/low_level/float_map.li
+C:/files/lisaac_damien/lisaac_damien/lib2/number/low_level/float_map32.li
+C:/files/lisaac_damien/lisaac_damien/lib2/number/low_level/float_map64.li
+C:/files/lisaac_damien/lisaac_damien/lib2/number/low_level/float_map80.li
+C:/files/lisaac_damien/lisaac_damien/lib2/number/low_level/float_real.li
+C:/files/lisaac_damien/lisaac_damien/lib2/number/low_level/numeric.li
+C:/files/lisaac_damien/lisaac_damien/lib2/number/low_level/signed_fixed_real.li
+C:/files/lisaac_damien/lisaac_damien/lib2/number/low_level/signed_integer.li
+C:/files/lisaac_damien/lisaac_damien/lib2/number/low_level/unsigned_fixed_real.li
+C:/files/lisaac_damien/lisaac_damien/lib2/number/low_level/unsigned_integer.li
+C:/files/lisaac_damien/lisaac_damien/lib2/number/real.li
+C:/files/lisaac_damien/lisaac_damien/lib2/number/real_16_16.li
+C:/files/lisaac_damien/lisaac_damien/lib2/number/real_24_8.li
+C:/files/lisaac_damien/lisaac_damien/lib2/number/real_26_6.li
+C:/files/lisaac_damien/lisaac_damien/lib2/number/real_32.li
+C:/files/lisaac_damien/lisaac_damien/lib2/number/real_64.li
+C:/files/lisaac_damien/lisaac_damien/lib2/number/real_80.li
+C:/files/lisaac_damien/lisaac_damien/lib2/number/uinteger.li
+C:/files/lisaac_damien/lisaac_damien/lib2/number/uinteger_16.li
+C:/files/lisaac_damien/lisaac_damien/lib2/number/uinteger_32.li
+C:/files/lisaac_damien/lisaac_damien/lib2/number/uinteger_64.li
+C:/files/lisaac_damien/lisaac_damien/lib2/number/uinteger_8.li
+C:/files/lisaac_damien/lisaac_damien/lib2/number/uinteger_big.li
+C:/files/lisaac_damien/lisaac_damien/lib2/number/ureal_16_16.li
+C:/files/lisaac_damien/lisaac_damien/lib2/number/ureal_24_8.li
+C:/files/lisaac_damien/lisaac_damien/lib2/number/ureal_26_6.li
+C:/files/lisaac_damien/lisaac_damien/lib2/reflexivity/fifo_cop.li
+C:/files/lisaac_damien/lisaac_damien/lib2/reflexivity/view_object.li
+C:/files/lisaac_damien/lisaac_damien/lib2/reflexivity/view_slot.li
+C:/files/lisaac_damien/lisaac_damien/lib2/string/abstract_string.li
+C:/files/lisaac_damien/lisaac_damien/lib2/string/string.li
+C:/files/lisaac_damien/lisaac_damien/lib2/string/string_constant.li
+C:/files/lisaac_damien/lisaac_damien/lib2/system/command_line.li
+C:/files/lisaac_damien/lisaac_damien/lib2/system/system_detect.li
+C:/files/lisaac_damien/lisaac_damien/lib2/testing/unit_test.li
+C:/files/lisaac_damien/lisaac_damien/lib2/time/date.li
+C:/files/lisaac_damien/lisaac_damien/lib2/time/time.li
+C:/files/lisaac_damien/lisaac_damien/lib2_os/unix/system/clock.li
+C:/files/lisaac_damien/lisaac_damien/lib2_os/unix/system/environment.li
+C:/files/lisaac_damien/lisaac_damien/lib2_os/unix/system/float_processor.li
+C:/files/lisaac_damien/lisaac_damien/lib2_os/unix/system/processor.li
+C:/files/lisaac_damien/lisaac_damien/lib2_os/unix/system/system.li
+C:/files/lisaac_damien/lisaac_damien/lib2_os/unix/system/system_io.li
+C:/files/lisaac_damien/lisaac_damien/lib2_os/unix/file_system/directory_unix.li
+C:/files/lisaac_damien/lisaac_damien/lib2_os/unix/file_system/entry_unix.li
+C:/files/lisaac_damien/lisaac_damien/lib2_os/unix/file_system/file_system.li
+C:/files/lisaac_damien/lisaac_damien/lib2_os/unix/file_system/file_unix.li
+C:/files/lisaac_damien/lisaac_damien/lib2_os/unix/video/event_system.li
+C:/files/lisaac_damien/lisaac_damien/lib2_os/unix/video/keyboard.li
+C:/files/lisaac_damien/lisaac_damien/lib2_os/unix/video/mouse.li
+C:/files/lisaac_damien/lisaac_damien/lib2_os/unix/video/timer.li
+C:/files/lisaac_damien/lisaac_damien/lib2_os/unix/video/video.li
diff --git a/gl_test/make.lip b/gl_test/make.lip
new file mode 100644
index 0000000..3115ccd
--- /dev/null
+++ b/gl_test/make.lip
@@ -0,0 +1,43 @@
+//
+// `gl_test`  LIsaac Project file
+//
+Section Inherit
+
+  + parent:STRING;
+
+Section Private
+
+  + project_root:STRING := "/C:/files/GIT/examples/gl_test/";
+
+  - project_src_path <- 
+  // Define the project path for source code.
+  (
+    path project_root;
+  );
+  
+  - libopengl_path <-
+  (
+    path "C:/files/GIT/opengl-binding/*";
+    path "C:/files/GIT/math/*";
+  );
+  
+  - front_end <- 
+  // Executed by compiler, before compilation step.
+  (
+    project_src_path;
+    libopengl_path;
+    general_front_end;
+  );
+
+Section Public
+
+  - debug_mode <- 
+  // Run in Debug Mode.
+  (
+    debug 15; // default level [1-20]
+  );
+
+  - clean <- 
+  // Clean project.
+  (
+  );
diff --git a/gl_test/my_event_listener.li b/gl_test/my_event_listener.li
index 22b3381..580b3f0 100644
--- a/gl_test/my_event_listener.li
+++ b/gl_test/my_event_listener.li
@@ -60,11 +60,11 @@ Section Public
   - move (x,y:INTEGER) <- 
   (
     
-  );
+  );  
   
-  - click b:INTEGER <-
+  - click b:INTEGER <- 
   (
-    ((b & 1) != 0).if {
+    ((b & 1) != 0).if {  
       "Right Click\n".print;
     } else {
       "Left Click\n".print;
diff --git a/gl_test/my_object.li b/gl_test/my_object.li
index 1a23b2b..c40b3a3 100644
--- a/gl_test/my_object.li
+++ b/gl_test/my_object.li
@@ -35,18 +35,18 @@ Section Public
   
   + geometry:DISPLAY_LIST;
   
-  + position:VECTOR3[REAL_32];
-  + rotation:VECTOR3[REAL_32];
+  + position:VECTOR3(REAL_32);
+  + rotation:VECTOR3(REAL_32);
   
   
-  - create list:DISPLAY_LIST name id:UINTEGER_32 at (pos,rot:VECTOR3[REAL_32]) :SELF <-
+  - create list:DISPLAY_LIST name id:UINTEGER_32 at (pos,rot:VECTOR3(REAL_32)) :SELF <-
   ( + result:SELF;
     result := SELF.clone;
     result.make (id,list,pos,rot);
     result
   );
   
-  - make (id:UINTEGER_32,list:DISPLAY_LIST,pos,rot:VECTOR3[REAL_32]) <- 
+  - make (id:UINTEGER_32,list:DISPLAY_LIST,pos,rot:VECTOR3(REAL_32)) <- 
   (
     name := id;
     geometry := list;
diff --git a/gl_test/my_scene1.li b/gl_test/my_scene1.li
index faecabd..33ccf30 100644
--- a/gl_test/my_scene1.li
+++ b/gl_test/my_scene1.li
@@ -68,7 +68,7 @@ Section Public
       log.print "Cannot support GLSL Shaders with ARB extensions";
     } else {
       shader := renderer.shader.create ("data/test.vert","data/test.frag");
-      shader.enable;
+      shader.enable; 
       
       loc := shader.get_uniform_location "time";
     };
diff --git a/gl_test/my_scene10.li b/gl_test/my_scene10.li
index b271976..2b3cb1c 100644
--- a/gl_test/my_scene10.li
+++ b/gl_test/my_scene10.li
@@ -50,7 +50,7 @@ Section Public
   + curve:EVALUATOR1D;
   + resolution:INTEGER := 30;
   
-  + points:FAST_ARRAY[VERTEX];
+  + points:FAST_ARRAY(VERTEX);
   
   
   + surface:EVALUATOR2D;
@@ -64,7 +64,7 @@ Section Public
     //
     
     // create control points
-    points := FAST_ARRAY[VERTEX].create_with_capacity 4;
+    points := FAST_ARRAY(VERTEX).create_with_capacity 4;
     points.add_last (VERTEX.create (-4,-4,0));
     points.add_last (VERTEX.create (-2,4,0));
     points.add_last (VERTEX.create (2,-4,0));
@@ -84,8 +84,8 @@ Section Public
     
     // enable the evaluator in the graphic pipeline
     curve.enable;
-    
-    //
+     
+    // 
     // Create Bezier Surface
     //
     
diff --git a/gl_test/my_scene11.li b/gl_test/my_scene11.li
index d1e1b33..f782d35 100644
--- a/gl_test/my_scene11.li
+++ b/gl_test/my_scene11.li
@@ -62,7 +62,7 @@ Section Public
   + terrain:TERRAIN;
   
   + light:LIGHT;
-  + light_pos:VECTOR3[REAL_32];
+  + light_pos:VECTOR3(REAL_32);
   + material:MATERIAL;
   
   + test:TEXTURE;
@@ -77,7 +77,7 @@ Section Public
     diffuse := RGBA.create (0.9, 0.9, 0.9, 0);
     specular := RGBA.create (1.0, 1.0, 1.0, 0.0);
     
-    light_pos := VECTOR3[REAL_32].create (0, 1, 0);
+    light_pos := VECTOR3(REAL_32).create (0, 1, 0);
     
     light := renderer.light.create (ambient,diffuse,specular) at light_pos;
     light.set_directional;
@@ -89,7 +89,7 @@ Section Public
     shine := 128;
     
     material := renderer.material.create (ambient,diffuse,specular,emission,shine);
-    
+     
     height_map := IMAGE.create "data/heightmap.bmp";   
     tex := renderer.texture2d.create_from (IMAGE.create "data/terrain-texture.bmp");
     
@@ -119,7 +119,7 @@ Section Public
   + camera:CAMERA;
   
   + xpos:REAL_32;
-  + zpos:REAL_32;
+  + zpos:REAL_32; 
   
   - render t:REAL_32 <-
   (          
diff --git a/gl_test/my_scene12.li b/gl_test/my_scene12.li
index 100f551..91e96c9 100644
--- a/gl_test/my_scene12.li
+++ b/gl_test/my_scene12.li
@@ -43,12 +43,12 @@ Section Public
   //
   //  test shaders
   //
-  
+   
   + model:MODEL;
   + texture:TEXTURE;
   
   + light:LIGHT;
-  + light_pos:VECTOR3[REAL_32] := VECTOR3[REAL_32].create (5,10,-180);
+  + light_pos:VECTOR3(REAL_32) := VECTOR3(REAL_32).create (5,10,-180);
   
   + camera:CAMERA;
   
@@ -67,11 +67,11 @@ Section Public
     camera.position.make (0,10,-200);
     camera.view.make (0,-10,200);
     camera.view.normalize;
-    
-    // load model
+     
+    // load model 
     texture := renderer.texture2d.create_from (IMAGE.create "data/skin.tga");
-    model := MD2_MODEL.create "data/model.md2" with texture;
-    
+    model := MD2_MODEL.create "data/model.md2" with texture; 
+     
     OPENGL.use_shaders.if_false {
       log.print "Cannot support GLSL Shaders with ARB extensions";
     } else {
diff --git a/gl_test/my_scene2.li b/gl_test/my_scene2.li
index d4af916..ca4dd28 100644
--- a/gl_test/my_scene2.li
+++ b/gl_test/my_scene2.li
@@ -44,9 +44,9 @@ Section Public
   //  test camera
   //
   
-  + camera:CAMERA := CAMERA.create_position (VECTOR3[REAL_32].create (0,1.5,6));
+  + camera:CAMERA := CAMERA.create_position (VECTOR3(REAL_32).create (0,1.5,6));
   
-  + sphere:SPHERE := SPHERE.create (VECTOR3[REAL_32].create (0,0,0),2,10,10);
+  + sphere:SPHERE := SPHERE.create (VECTOR3(REAL_32).create (0,0,0),2,10,10);
   
   + vb:VERTEX_BUFFER;
   
diff --git a/gl_test/my_scene4.li b/gl_test/my_scene4.li
index 5c0f226..61ea068 100644
--- a/gl_test/my_scene4.li
+++ b/gl_test/my_scene4.li
@@ -57,12 +57,12 @@ Section Public
   //
 
   // origine de l'explosion
-  - orig:VECTOR3[REAL_32] := VECTOR3[REAL_32].create (0.0,0,0.0);
+  - orig:VECTOR3(REAL_32) := VECTOR3(REAL_32).create (0.0,0,0.0);
   
-  + camera:CAMERA := CAMERA.create_position (VECTOR3[REAL_32].create (0,20,-300));
+  + camera:CAMERA := CAMERA.create_position (VECTOR3(REAL_32).create (0,20,-300));
   
   + particle_system:PARTICLE_SYSTEM;
-  + pf_pos:VECTOR3[REAL_32] := VECTOR3[REAL_32].create (-0.5,1.0,1.0);
+  + pf_pos:VECTOR3(REAL_32) := VECTOR3(REAL_32).create (-0.5,1.0,1.0);
   
   + constraint:CONSTRAINT;
   
@@ -71,9 +71,9 @@ Section Public
   + color_scheme:INTEGER;
   
   
-  + modelview:MATRIX4[REAL_32];
-  
+  + modelview:MATRIX4(REAL_32);
   
+   
   - initialize:BOOLEAN <-
   (
     camera.view.make (0, -20, 300);
@@ -88,7 +88,7 @@ Section Public
     constraint := POINT_FORCE.create (pf_pos,0.8,0,0.001);
     particle_system.add_constraint constraint;    
     
-    constraint := BOUNCE_PLANE.create (VECTOR3[REAL_32].create (0,1,0), 40);
+    constraint := BOUNCE_PLANE.create (VECTOR3(REAL_32).create (0,1,0), 40);
     particle_system.add_constraint constraint;
     
     
@@ -96,16 +96,16 @@ Section Public
     tex.set_wrapping_mode (tex.clamp);
     tex := renderer.texture2d.create_from (IMAGE.create "data/flare.bmp");
     
-    modelview := MATRIX4[REAL_32].create;
+    modelview := MATRIX4(REAL_32).create;
     TRUE
   );
   
-  + dx:VECTOR3[REAL_32] := VECTOR3[REAL_32].create (0,0,0);
-  + dy:VECTOR3[REAL_32] := VECTOR3[REAL_32].create (0,0,0);
+  + dx:VECTOR3(REAL_32) := VECTOR3(REAL_32).create (0,0,0);
+  + dy:VECTOR3(REAL_32) := VECTOR3(REAL_32).create (0,0,0);
   
   + curtime:REAL_32;
   
-  + sphere:SPHERE := SPHERE.create (VECTOR3[REAL_32].create (0,0,0),2,10,10);
+  + sphere:SPHERE := SPHERE.create (VECTOR3(REAL_32).create (0,0,0),2,10,10);
   
   - render t:REAL_32 <-
   (          
diff --git a/gl_test/my_scene5.li b/gl_test/my_scene5.li
index 2e3c9bd..7c2a207 100644
--- a/gl_test/my_scene5.li
+++ b/gl_test/my_scene5.li
@@ -51,21 +51,21 @@ Section Public
   + m1:MATERIAL;
   + m2:MATERIAL;
   
-  + light_position:VECTOR3[REAL_32];
+  + light_position:VECTOR3(REAL_32);
   
   - initialize:BOOLEAN <-
   (
     + ambient,diffuse,specular,emission:COLOR;
     + shine:REAL_32;
     
-    sphere1 := SPHERE.create (VECTOR3[REAL_32].create (-0.2,0,-1),0.2,100,100);
-    sphere2 := SPHERE.create (VECTOR3[REAL_32].create (0.2,0,-1),0.2,100,100);
+    sphere1 := SPHERE.create (VECTOR3(REAL_32).create (-0.2,0,-1),0.2,100,100);
+    sphere2 := SPHERE.create (VECTOR3(REAL_32).create (0.2,0,-1),0.2,100,100);
     
     ambient := RGB.create (0.2, 0.2, 0.2); // lumiere blanche
     diffuse := RGB.create (1.0, 0.0, 1.0);
     specular := RGB.create (1.0, 1.0, 1.0);
     
-    light_position := VECTOR3[REAL_32].create (0,0,1);
+    light_position := VECTOR3(REAL_32).create (0,0,1);
     light := renderer.light.create (ambient,diffuse,specular) at light_position;
     
     ambient := RGB.create (0.7, 0.7, 0.7); 
diff --git a/gl_test/my_scene6.li b/gl_test/my_scene6.li
index 2f38164..e0be02a 100644
--- a/gl_test/my_scene6.li
+++ b/gl_test/my_scene6.li
@@ -62,7 +62,7 @@ Section Public
     // hierarchical display lists
     sublist := GL_DISPLAY_LIST.create {
       renderer.color_buffer.set_color3f (0.0, 1.0, 0.0);
-      sphere := SPHERE.create (VECTOR3[REAL_32].create (-0.5,0,-1),0.06,10,10);
+      sphere := SPHERE.create (VECTOR3(REAL_32).create (-0.5,0,-1),0.06,10,10);
       sphere.render;
     };
     
@@ -76,7 +76,7 @@ Section Public
         sublist.call;
       };      
       renderer.color_buffer.set_color3f (1.0, 0.0, 0.0);
-      sphere := SPHERE.create (VECTOR3[REAL_32].create (-0.5,0,-1),0.1,10,10);
+      sphere := SPHERE.create (VECTOR3(REAL_32).create (-0.5,0,-1),0.1,10,10);
       sphere.render;
     };
     
@@ -85,11 +85,11 @@ Section Public
     diffuse := RGB.create (1.0, 1.0, 1.0);
     specular := RGB.create (1.0, 1.0, 1.0);
     
-    light := renderer.light.create (ambient,diffuse,specular) at (VECTOR3[REAL_32].create (0,0,1));
+    light := renderer.light.create (ambient,diffuse,specular) at (VECTOR3(REAL_32).create (0,0,1));
     
     ambient := RGB.create (0.7, 0.7, 0.7); 
     diffuse := RGB.create (0.1, 0.5, 0.9);
-    specular := RGB.create (0.0, 1.0, 1.0);
+    specular := RGB.create (0.0, 1.0, 1.0); 
     emission := RGB.create (0.3, 0.2, 0.2);
     shine := 100.0;
     
diff --git a/gl_test/my_scene7.li b/gl_test/my_scene7.li
index 07d26de..f6d09d5 100644
--- a/gl_test/my_scene7.li
+++ b/gl_test/my_scene7.li
@@ -67,7 +67,7 @@ Section Public
     diffuse := RGB.create (1.0, 0.0, 1.0);
     specular := RGB.create (1.0, 1.0, 1.0);
     
-    light := renderer.light.create (ambient,diffuse,specular) at (VECTOR3[REAL_32].create (0,1,1.5));
+    light := renderer.light.create (ambient,diffuse,specular) at (VECTOR3(REAL_32).create (0,1,1.5));
     light.enable;
     
     ambient := RGB.create (0.7, 0.7, 0.7); 
diff --git a/gl_test/my_scene8.li b/gl_test/my_scene8.li
index dd22488..6be4b6f 100644
--- a/gl_test/my_scene8.li
+++ b/gl_test/my_scene8.li
@@ -79,7 +79,7 @@ Section Public
     specular := RGB.create (1.0, 1.0, 1.0);
     
     // create a light
-    light := renderer.light.create (ambient,diffuse,specular) at (VECTOR3[REAL_32].create (0,10,-200));
+    light := renderer.light.create (ambient,diffuse,specular) at (VECTOR3(REAL_32).create (0,10,-200));
     light.set_directional;
     light.enable;  
     
diff --git a/gl_test/my_scene9.li b/gl_test/my_scene9.li
index 308929b..d364220 100644
--- a/gl_test/my_scene9.li
+++ b/gl_test/my_scene9.li
@@ -57,7 +57,7 @@ Section Public
   //  Picking demo
   //
   
-  + obj:FAST_ARRAY[MY_OBJECT];
+  + obj:FAST_ARRAY(MY_OBJECT);
   
   + camera:CAMERA;
   
@@ -66,7 +66,7 @@ Section Public
     + sphere:SPHERE;
     + cylinder:CYLINDER;
     + cone:CONE;
-    + pos,rot:VECTOR3[REAL_32];
+    + pos,rot:VECTOR3(REAL_32);
     + list:DISPLAY_LIST;
     
     camera := CAMERA.create;
@@ -75,14 +75,14 @@ Section Public
     camera.view.make (0,-1,10);
     camera.view.normalize;
     
-    pos := VECTOR3[REAL_32].zero;
-    rot := VECTOR3[REAL_32].zero;
+    pos := VECTOR3(REAL_32).zero;
+    rot := VECTOR3(REAL_32).zero;
     
     sphere := SPHERE.create (pos,1,10,10);
     cylinder := CYLINDER.create (pos,1,1,2,10,10);
     cone := CONE.create (pos,1,2,10);
     
-    obj := FAST_ARRAY[MY_OBJECT].create_with_capacity 3;
+    obj := FAST_ARRAY(MY_OBJECT).create_with_capacity 3;
     
     // object #1
     list := renderer.display_list.create {
@@ -125,7 +125,7 @@ Section Public
     camera.look;
     
     update_objects;
-    draw_objects FALSE;
+    draw_objects FALSE; 
   
     x := renderer.width / 2 - 50;
     renderer.font.print_zone {
@@ -144,7 +144,7 @@ Section Public
         out.print "No selected object" at (x,500);
       };
     };
-  );
+  ); 
   
   - update_objects <-
   (
@@ -167,9 +167,9 @@ Section Public
     };
   );
   
-  - hits:FAST_ARRAY[UINTEGER_32] := FAST_ARRAY[UINTEGER_32].create 512; 
+  - hits:FAST_ARRAY(UINTEGER_32) := FAST_ARRAY(UINTEGER_32).create 512; 
 
-  - process_hits (nb_hits:INTEGER, buffer:FAST_ARRAY[UINTEGER_32]) <-
+  - process_hits (nb_hits:INTEGER, buffer:FAST_ARRAY(UINTEGER_32)) <-
   (
     + choose,depth:UINTEGER_32;
     
diff --git a/gl_test/test_scene.li b/gl_test/test_scene.li
index 460b1b8..5be5898 100644
--- a/gl_test/test_scene.li
+++ b/gl_test/test_scene.li
@@ -37,14 +37,14 @@ Section Public
     
     GL.gl_vertex3f (0.0, 2.0, 0.0);
     GL.gl_color3f (1, 0, 0);
-    
+     
     GL.gl_vertex3f (-1.0, 0.0, 0.0);
     GL.gl_color3f (0, 1, 0);	
     
     GL.gl_vertex3f (1.0, 0.0, 0.0);
     GL.gl_color3f (0, 0, 1);
     
-    GL.gl_end;	
+    GL.gl_end;	 
   );
   
   - release <-
diff --git a/uml/parsing.li b/uml/parsing.li
index a619c88..3b34e1a 100644
--- a/uml/parsing.li
+++ b/uml/parsing.li
@@ -1,492 +1,492 @@
-/*******	Prototype qui permet de recuperer toutes les informations relative a un fichier.li	*******/
-
-
-
-Section Header
-  + name := PARSING;
-  - author:="HILBERT Jerome (hilbertjerome at gmail.com), FUHLHABER Simon(simon.fuhlhaber at gmail.com), Jacquemin Gregoire(greg-jacquemin at hotmail.fr)";
-  
-Section Inherit
-  + parent_object:OBJECT := OBJECT;
-  
-Section Private
-  + buffer1:STRING;
-  + simple:BOOLEAN :=FALSE;
-  + uniquement_public:BOOLEAN:=FALSE;
-  
-Section Public
-  
-  //recupere le contenu du fichier et renvoit une instance de FICHIER contenant ses informations
-  + parcours_fichier e:ENTRY option simple1:BOOLEAN ou uniquement_public1:BOOLEAN :FICHIER <-
-  (
-    + lee:LIREETECRIRE;
-    + f:FICHIER;
-    + nom:STRING;
-    
-    simple:=simple1;
-    uniquement_public:=uniquement_public1;
-    f:=FICHIER.clone;
-    lee:=LIREETECRIRE.clone;
-    e.path.print;
-    "\n".print;
-    buffer1:=lee.lire e;
-    buffer1.append "\n";
-    buffer1.to_lower;
-    le_nettoyeur3;
-    nom:=get_element "name" in "Header";
-    f.make (nom,(get_methodes nom),(get_attributs nom),get_parents);
-    f
-  );
-  
-Section Private
-  
-  //nettoie le fichier en enlevant tous les commentaires, ce qui se trouve entre "" et entre ()
-  //->il ne restera que ce qu'il faut analyser!
-
-  - le_nettoyeur3 <-
-  (
-    + index,index2,index_g,index_c,index_po,index_pf,index_p:INTEGER;
-    + nb_p:INTEGER;
-    + calcul_index:BLOCK;
-    index:=1;
-    nb_p:=0;
-    //calcul des index
-    calcul_index:={index_g:=buffer1.index_of '"' since index;
-      index_c:=buffer1.index_of '/' since index;
-      index_pf:=buffer1.index_of ')' since index;
-      index_po:=buffer1.index_of '(' since index;
-      index:=(index_g.min index_c).min (index_po.min index_pf);
-    };
-    
-    calcul_index.value;
-    {index<(buffer1.count+1)}.while_do{
-      ({index_g=index}&&{buffer1.item (index_g-1) != '\\'}&&{!({buffer1.item (index_g-1) = '\''}&&{buffer1.item (index_g+1) = '\''})}).if{
-        //on enl�ve ce qui est entre ""
-        index2:=index+1;
-        {{(index2:=buffer1.index_of '"' since (index2))!=(buffer1.count+1)}&&
-          {{buffer1.item (index2-1) = '\\'}||
-        {{buffer1.item (index2-1) = '\''}&&{buffer1.item (index2+1) = '\''}}}}.while_do{
-        index2:=index2+1;};
-        (index2=(buffer1.count+1)).if_false{
-          buffer1.remove_between index to index2;
-        };
-      }else{
-        //suppression des commentaires //
-        ({index_c=index}&&{buffer1.item (index_c+1) = '/'}).if{
-          index2:=buffer1.index_of '\n' since (index_c+2);
-          buffer1.remove_between index to (index2-1);
-        }else{
-          //suppression des commentaires /* */
-          ({index_c=index}&&{buffer1.item (index_c+1) = '*'}).if{
-            ((index2:=buffer1.substring_index ("*/",index_c+2))!=0).if{
-              buffer1.remove_between index to (index2+1);
-            };
-          }else{
-            //comptage des (
-            ({index_po=index}&&{!({buffer1.item (index_po-1)='\''}&&{buffer1.item (index_po+1)='\''})}).if{
-              (nb_p=0).if{index_p:=index;};
-              nb_p:=nb_p+1;
-              index:=index+1;
-            }else{
-              //d�comptage des ) et suppression des zones entre parenth�ses
-              ({index_pf=index}&&{!({buffer1.item (index_pf-1)='\''}&&{buffer1.item (index_pf+1)='\''})}).if{
-                nb_p:=nb_p-1;
-                (nb_p=0).if{
-                  buffer1.remove_between index_p to (index_pf+1);
-                  index:=index_p;
-                }else{index:=index+1;};
-              }else{index:=index+1;};
-            };
-          };
-        };
-      };
-      //calcul des nouveaux index
-      /*index_g:=buffer1.index_of '"' since index;
-      index_c:=buffer1.index_of '/' since index;
-      index_pf:=buffer1.index_of ')' since index;
-      index_po:=buffer1.index_of '(' since index;
-      index:=(index_g.min index_c).min (index_po.min index_pf);*/
-      calcul_index.value;
-    };
-  );
-  
-  //renvoit la section s, par exemple si s vaut HEADER, renvoit l'ensemble de la section HEADER. S'il y a plusieurs section du m�me nom,
-  //renvoit les sections concat�n�es
-  - get_section s:ABSTRACT_STRING :STRING <-
-  (
-    + section1:STRING;
-    + index,index0:INTEGER;
-    + index2:INTEGER;
-    + texto:STRING;
-    
-    index2:=1;
-    texto:=STRING.create (s.count);
-    section1:=STRING.create 256;
-    section1.copy "";
-    texto.copy s;
-    texto.to_lower;
-  
-    {(index0:=buffer1.substring_index ("section",index2))!=0}.while_do{
-      index:=index0+7;
-      {{buffer1.item index ==' '}||{buffer1.item index =='\n'}}.while_do{index:=index+1;};
-      (buffer1.substring index to (index+s.count-1) ==texto).if{
-        index0:=index+s.count;
-        index2:=index0-7;
-        {
-          index:=index2+7;
-          index2:=buffer1.substring_index ("section",(index));
-        }.do_while{{index2!=0}&&{{{(buffer1.item (index2-1))!='\n'}&&{(buffer1.item (index2-1))!=' '}}||{{(buffer1.item (index2+7))!=' '}&&{(buffer1.item (index2+7))!='\n'}}}};
-        
-        (index2==0).if{ 
-          index2:=buffer1.count;
-        };
-        section1.append (buffer1.substring index0 to (index2-1));
-      }else{index2:=index2+8;};
-  //    "index2 ".print;index2.print;'\n'.print;
-  //    "buffer1 ".print;buffer1.count.print;'\n'.print;
-    };		
-    section1
-  );
-
-Section Public
-  
-  // renvoit un �l�ment d'une section, pour l'instant cette m�thode ne sert qu'� r�cup�rer le 'name' dans la section HEADER
-  // mais elle pourrait servir �galement � r�cup�rer les auteur, les commentaires, etc..
-  - get_element nom:STRING_CONSTANT in s:STRING_CONSTANT :STRING <-
-  (
-    + index,index2,index3:INTEGER;
-    + section1:STRING;
-    + element:STRING;
-    
-  section1:=get_section s;
-  index:=section1.substring_index (nom,1);
-  index:=section1.substring_index (":=",(index+nom.count));
-  index2:=section1.substring_index (";",(index+nom.count));
-  index3:=section1.substring_index ("->",(index+nom.count));
-  (index3>0).if{index2:=index2.min(index3-1)};
-  
-  element:=STRING.create (index2-index+2);
-  element.copy (section1.substring (index+2) to (index2-1));
-  element.remove_all_occurrences ' ';
-  element.remove_all_occurrences '\n';
-  element
-);
-//renvoit l'ensemble des parents d'un prototype
-- get_parents :ENS_PARENTS <-
-(
-  + section1:STRING;
-  + index:INTEGER;
-  + index2:INTEGER;
-  + parents:ENS_PARENTS;
-  + parent:STRING;
-  
-  parents:=ENS_PARENTS.create;
-  section1:=get_section "INHERIT";
-  index:=1;
-  index2:=1;
-  
-  {(index:=section1.substring_index (":",(index2+1)))!=0}.while_do{
-    ((section1.item (index+1))=='=').if_false{
-      ((index2:=section1.substring_index ("expanded",(index+1)))!=0).if{
-        index:=index2+7;
-      };
-      ((index2:=section1.substring_index (":=",(index+1)))==0).if{
-        ((index2:=section1.substring_index (";",index))==0).if{
-          index2:=section1.substring_index ("<" ,index);
-        };
-      };
-      
-      
-      parent:=STRING.create (index2-index-2);
-      parent.copy (section1.substring (index+1) to (index2-1));
-      parent.remove_all_occurrences ' ';
-      parent.remove_all_occurrences '\n';
-      parent.to_upper;
-      (parents.has parent).if_false{
-        parents.ajouter parent;
-      };
-    }else{
-      index2:=index+1;
-    };
-  };
-  parents
-);
-
-//recherche des attributs
-- get_attributs nom:STRING :ENS_ATTRIBUTS <-
-(
-  + ea:ENS_ATTRIBUTS;
-  + pro:PROTECTED;
-  
-  pro:=PROTECTED.clone;
-  pro.set_nom nom;
-  
-  ea:=ENS_ATTRIBUTS.create;
-  (simple).if_false{
-    ea.append_collection (get_attributs2 PUBLIC);
-    (uniquement_public).if_false{
-      ea.append_collection (get_attributs2 PRIVATE);
-      ea.append_collection (get_attributs2 pro);
-    };
-  };
-  ea
-);
-//recherche des attributs selon un acc�s (public,private,..)
-- get_attributs2 acces:ACCES :ENS_ATTRIBUTS <-
-(
-  + index,index2,index3:INTEGER;
-  + ea:ENS_ATTRIBUTS;
-  + section1:STRING;
-  + tmp_string:STRING;
-  ea:=ENS_ATTRIBUTS.create;
-  
-section1:=get_section (acces.get_type);
-  
-  index:=0;
-  {index!=(section1.count+1)}.while_do{
-    index2:=index3:=index;
-    {
-      index:=index+1;
-      index:=section1.index_of '+' since index;
-    }.do_while {
-  ((index > section1.lower) && {section1.item (index-1)='\''}) && 
-{(index < section1.upper) && {section1.item (index+1)='\''}}
-};
-
-{
-  index2:=index2+1;
-  index2:=section1.index_of '-' since index2;
-}.do_while{
-  ((index2 > section1.lower) && {section1.item (index2-1)='<'}) || {
-  {(index2 > section1.lower) && {section1.item (index2-1)='\''}} && 
-  {(index2 < section1.upper) && {section1.item (index2+1)='\''}}
-  }
-};
-
-{
-  index3:=index3+1;
-  index3:=section1.index_of '*' since index3;
-}.do_while {
-((index3 > section1.lower) && {section1.item (index3-1)='\''}) && 
-{(index3 < section1.upper) && {section1.item (index3+1)='\''}}
-};
-index:=index.min index2.min index3;			
-
-(index != section1.count+1).if {
-  
-  // 				index2:=section1.index_of ';' since (index+1);
-  index2:=section1.substring_index (":=",(index+1));
-  index3:=section1.index_of ';' since (index+1);
-  ({index2>index3}||{index2==0}).if{index2:=index3;};
-  
-  index3:=section1.substring_index ("<-",(index+1));
-  ({index2<index3}||{index3==0}).if{
-    index2:=index2.min((section1.index_of '=' since (index+1))-1);
-    tmp_string:=section1.substring (index+1) to (index2-1);
-    ((tmp_string.index_of ':' since 1)!=(tmp_string.count+1)).if{
-      ea.append_collection (get_attribut tmp_string with acces);
-    };
-  };
-};
-};
-ea
-);
-//analyse une chaine correspondant a un ('i:INTEGER') ou plusieurs ('i,j:INTEGER') attribut(s) et renvoit un ensemble d'attributs
-- get_attribut a:STRING with acces:ACCES :ENS_ATTRIBUTS <-
-(
-  + attribut:ATTRIBUT;
-  + index,index2,index3:INTEGER;
-  + nom,type_retour:STRING;
-  + ea:ENS_ATTRIBUTS;
-  
-  ea:=ENS_ATTRIBUTS.create;
-  a.remove_all_occurrences ' ';
-  a.remove_all_occurrences '\n';
-  
-  index:=a.index_of ':' since 1;
-  type_retour:=a.substring (index+1) to (a.count);
-  type_retour.to_upper;
-  
-  index2:=1;
-  {{(index3:=a.index_of ',' since (index2))!=(a.count+1)}&&{index3<index}}.while_do{
-    attribut:=ATTRIBUT.clone;
-    nom:=a.substring index2 to (index3-1);
-    attribut.make (nom,type_retour,acces);
-    ea.add_last attribut;
-    index2:=index3+1;
-  };
-  attribut:=ATTRIBUT.clone;
-  nom:=a.substring index2 to (index-1);
-  attribut.make (nom,type_retour,acces);	
-  ea.add_last attribut;
-  ea
-);
-
-Section Public
-  
-  //recherche des attributs
-  - get_methodes nom:STRING :ENS_METHODES <-
-  (
-    + em:ENS_METHODES;
-    + pro:PROTECTED;
-    
-    pro:=PROTECTED.clone;
-    pro.set_nom nom;
-    
-    em:=ENS_METHODES.create;
-    (simple).if_false{
-      em.append_collection (get_methodes2 PUBLIC);
-      (uniquement_public).if_false{
-        em.append_collection (get_methodes2 PRIVATE);
-        em.append_collection (get_methodes2 pro);
-      };
-    };
-    em
-  );
-  //recherche des attributs selon un acces(public,private,..)
-  - get_methodes2 acces:ACCES:ENS_METHODES <-
-  (
-    + index,index2,index3:INTEGER;
-    + em:ENS_METHODES;
-    + section1:STRING;
-    + tmp_string:STRING;
-    em:=ENS_METHODES.create;
-    section1:=get_section (acces.get_type);
-    "section\t".print;section1.print;'\n'.print;
-
-    index:=0;
-    {index!=(section1.count+1)}.while_do{
-      index2:=index3:=index;
-      {
-        index:=index+1;
-        index:=section1.index_of '+' since index;
-      }.do_while {
-        ((index > section1.lower) && {section1.item (index-1)='\''}) && 
-        {(index < section1.upper) && {section1.item (index+1)='\''}}
-      };
-        
-      {
-        index2:=index2+1;
-        index2:=section1.index_of '-' since index2;
-      }.do_while {      
-        ((index2 > section1.lower) && {section1.item (index2-1)='<'}) || {
-        ((index2 > section1.lower) && {section1.item (index2-1)='\''}) && {
-          (index2 < section1.upper) && { section1.item (index2+1)='\''}
-        }
-      }
-    };
-    
-    {
-      index3:=index3+1;
-      index3:=section1.index_of '*' since index3;
-    }.do_while {
-      ((index3 > section1.lower) && {section1.item (index3-1)='\''}) && 
-        {(index3 < section1.upper) && {section1.item (index3+1)='\''}}
-    };
-
-
-    index:=index.min index2.min index3;			
-    (index!=(section1.count+1)).if{
-      // 				index2:=section1.index_of ';' since (index+1);
-      index2:=section1.substring_index (":=",(index+1));
-      index3:=section1.index_of ';' since (index+1);
-      ({index2>index3}||{index2==0}).if{index2:=index3;};
-      index3:=section1.substring_index ("<-",(index+1));
-      ({{index2>index3}||{index2==(section1.count+1)}}&&{index3!=0}).if{
-        tmp_string:=section1.substring (index+1) to (index3-1);
-        em.add_last (get_methode (tmp_string,acces));
-      };
-    };
-  };
-  em
-);
-
-Section Public
-
-  - get_methode (m:STRING,acces:ACCES) :METHODE <-
-  (
-    + index,index2,index3:INTEGER;
-    + nom,type_retour,tmp_string2:STRING;
-    + methode:METHODE;
-    + ea:ENS_ATTRIBUTS;
-    
-    ea:=ENS_ATTRIBUTS.create;
-    methode:=METHODE.clone;
-    m.right_adjust; m.left_adjust;
-    type_retour:=STRING.create 4;
-    type_retour.copy "void";
-    m.replace_all '\t' with ' ';
-    m.append " ";
-    index:=(m.index_of ' ' since 1).min(m.index_of ':' since 1).min(m.index_of '(' since 1);
-    nom:= m.substring 1 to (index-1);
-    nom.replace_all '<' with 'c';
-    nom.replace_all '&' with 'e';
-    {(index2:=m.index_of ':' since (index))!=(m.count+1)}.while_do{
-      ((index2-index)<2).if{
-        type_retour:=m.substring (index2+1) to (m.count-1);
-        index:=m.count;
-      }else{
-        + idx_end_type,last_idx:INTEGER;
-        + tmp_string3:STRING;
-        
-        index3:=(m.index_of ' ' since (index2+1)).min(m.index_of ')' since (index2+1));
-        tmp_string2:=m.substring (index+1) to (index3-1);
-        last_idx := tmp_string2.lower;
-        {
-          (
-            idx_end_type := tmp_string2.index_of ':' since last_idx;
-            idx_end_type := tmp_string2.index_of ',' since (idx_end_type+1)
-          ) != tmp_string2.count+1
-      }.while_do {
-        tmp_string3 := tmp_string2.substring last_idx to (idx_end_type-1);
-        "parametres méthodes\t".print;tmp_string3.print;'\n'.print;
-        last_idx := idx_end_type + 1;
-        ea.append_collection(get_attribut tmp_string3 with acces);
-      };
-   /*     
-        ((tmp_string2.occurrences ':')>1).if{
-          index3:=m.index_of ':' since (index2+1);
-          tmp_string2:=m.substring (index+1) to (index3-1);
-        };
-   */     
-        index:=index3;
-      };
-    };
-    type_retour.to_upper;
-    methode.make (nom,type_retour,ea,acces);
-    methode
-  );
-  
-  
-/* 
-  + le_nettoyeur4 <-
-  (
-    + idx_prefix,idx_end:INTEGER;
-    idx_prefix := 1;
-    { idx_prefix != buffer1.count+1 }.while_do{
-      idx_prefix := buffer1.substring_index "//" since idx_prefix;
-      (buffer1.item (idx_prefix-1) != '\\').if{
-        idx_end := buffer1.index_of '\\n' since idx_prefix;
-        buffer1.remove_between idx_prefix to idx_end;
-      };
-    };
-    idx_prefix := 1;
-    { idx_prefix != buffer1.count+1 }.while_do{
-      idx_prefix := buffer1.substring_index "/*" since idx_prefix;
-      (buffer1.item (idx_prefix-1) != '\\').if{
-        idx_end := buffer1.substring_index "*/" since idx_prefix;
-        (buffer1.item (idx_end-1) != '\\').if{
-          buffer1.remove_between idx_prefix to (idx_end+1);
-        };
-      };    
-    };
-    idx_prefix := 1;
-    {
-      ( idx_prefix := (buffer1.index_of '+' since idx_prefix ).min (buffer1.index_of '-' since idx_prefix);
-        idx_end := (buffer1.index_of ';' since idx_prefix).min (buffer1.substring_index "<-" since idx_prefix).min (buffer1.substring_index ":=" since idx_prefix)
-      ) != buffer1.count+1
-    }.while_do{
-      
-    };
-  );
+/*******	Prototype qui permet de recuperer toutes les informations relative a un fichier.li	*******/
+
+
+
+Section Header
+  + name := PARSING;
+  - author:="HILBERT Jerome (hilbertjerome at gmail.com), FUHLHABER Simon(simon.fuhlhaber at gmail.com), Jacquemin Gregoire(greg-jacquemin at hotmail.fr)";
+  
+Section Inherit
+  + parent_object:OBJECT := OBJECT;
+  
+Section Private
+  + buffer1:STRING;
+  + simple:BOOLEAN :=FALSE;
+  + uniquement_public:BOOLEAN:=FALSE;
+  
+Section Public
+  
+  //recupere le contenu du fichier et renvoit une instance de FICHIER contenant ses informations
+  + parcours_fichier e:ENTRY option simple1:BOOLEAN ou uniquement_public1:BOOLEAN :FICHIER <-
+  (
+    + lee:LIREETECRIRE;
+    + f:FICHIER;
+    + nom:STRING;
+    
+    simple:=simple1;
+    uniquement_public:=uniquement_public1;
+    f:=FICHIER.clone;
+    lee:=LIREETECRIRE.clone;
+    e.path.print;
+    "\n".print;
+    buffer1:=lee.lire e;
+    buffer1.append "\n";
+    buffer1.to_lower;
+    le_nettoyeur3;
+    nom:=get_element "name" in "Header";
+    f.make (nom,(get_methodes nom),(get_attributs nom),get_parents);
+    f
+  );
+  
+Section Private
+  
+  //nettoie le fichier en enlevant tous les commentaires, ce qui se trouve entre "" et entre ()
+  //->il ne restera que ce qu'il faut analyser!
+
+  - le_nettoyeur3 <-
+  (
+    + index,index2,index_g,index_c,index_po,index_pf,index_p:INTEGER;
+    + nb_p:INTEGER;
+    + calcul_index:BLOCK;
+    index:=1;
+    nb_p:=0;
+    //calcul des index
+    calcul_index:={index_g:=buffer1.index_of '"' since index;
+      index_c:=buffer1.index_of '/' since index;
+      index_pf:=buffer1.index_of ')' since index;
+      index_po:=buffer1.index_of '(' since index;
+      index:=(index_g.min index_c).min (index_po.min index_pf);
+    };
+    
+    calcul_index.value;
+    {index<(buffer1.count+1)}.while_do{
+      ({index_g=index}&&{buffer1.item (index_g-1) != '\\'}&&{!({buffer1.item (index_g-1) = '\''}&&{buffer1.item (index_g+1) = '\''})}).if{
+        //on enl�ve ce qui est entre ""
+        index2:=index+1;
+        {{(index2:=buffer1.index_of '"' since (index2))!=(buffer1.count+1)}&&
+          {{buffer1.item (index2-1) = '\\'}||
+        {{buffer1.item (index2-1) = '\''}&&{buffer1.item (index2+1) = '\''}}}}.while_do{
+        index2:=index2+1;};
+        (index2=(buffer1.count+1)).if_false{
+          buffer1.remove_between index to index2;
+        };
+      }else{
+        //suppression des commentaires //
+        ({index_c=index}&&{buffer1.item (index_c+1) = '/'}).if{
+          index2:=buffer1.index_of '\n' since (index_c+2);
+          buffer1.remove_between index to (index2-1);
+        }else{
+          //suppression des commentaires /* */
+          ({index_c=index}&&{buffer1.item (index_c+1) = '*'}).if{
+            ((index2:=buffer1.substring_index ("*/",index_c+2))!=0).if{
+              buffer1.remove_between index to (index2+1);
+            };
+          }else{
+            //comptage des (
+            ({index_po=index}&&{!({buffer1.item (index_po-1)='\''}&&{buffer1.item (index_po+1)='\''})}).if{
+              (nb_p=0).if{index_p:=index;};
+              nb_p:=nb_p+1;
+              index:=index+1;
+            }else{
+              //d�comptage des ) et suppression des zones entre parenth�ses
+              ({index_pf=index}&&{!({buffer1.item (index_pf-1)='\''}&&{buffer1.item (index_pf+1)='\''})}).if{
+                nb_p:=nb_p-1;
+                (nb_p=0).if{
+                  buffer1.remove_between index_p to (index_pf+1);
+                  index:=index_p;
+                }else{index:=index+1;};
+              }else{index:=index+1;};
+            };
+          };
+        };
+      };
+      //calcul des nouveaux index
+      /*index_g:=buffer1.index_of '"' since index;
+      index_c:=buffer1.index_of '/' since index;
+      index_pf:=buffer1.index_of ')' since index;
+      index_po:=buffer1.index_of '(' since index;
+      index:=(index_g.min index_c).min (index_po.min index_pf);*/
+      calcul_index.value;
+    };
+  );
+  
+  //renvoit la section s, par exemple si s vaut HEADER, renvoit l'ensemble de la section HEADER. S'il y a plusieurs section du m�me nom,
+  //renvoit les sections concat�n�es
+  - get_section s:ABSTRACT_STRING :STRING <-
+  (
+    + section1:STRING;
+    + index,index0:INTEGER;
+    + index2:INTEGER;
+    + texto:STRING;
+    
+    index2:=1;
+    texto:=STRING.create (s.count);
+    section1:=STRING.create 256;
+    section1.copy "";
+    texto.copy s;
+    texto.to_lower;
+  
+    {(index0:=buffer1.substring_index ("section",index2))!=0}.while_do{
+      index:=index0+7;
+      {{buffer1.item index ==' '}||{buffer1.item index =='\n'}}.while_do{index:=index+1;};
+      (buffer1.substring index to (index+s.count-1) ==texto).if{
+        index0:=index+s.count;
+        index2:=index0-7;
+        {
+          index:=index2+7;
+          index2:=buffer1.substring_index ("section",(index));
+        }.do_while{{index2!=0}&&{{{(buffer1.item (index2-1))!='\n'}&&{(buffer1.item (index2-1))!=' '}}||{{(buffer1.item (index2+7))!=' '}&&{(buffer1.item (index2+7))!='\n'}}}};
+        
+        (index2==0).if{ 
+          index2:=buffer1.count;
+        };
+        section1.append (buffer1.substring index0 to (index2-1));
+      }else{index2:=index2+8;};
+  //    "index2 ".print;index2.print;'\n'.print;
+  //    "buffer1 ".print;buffer1.count.print;'\n'.print;
+    };		
+    section1
+  );
+
+Section Public
+  
+  // renvoit un �l�ment d'une section, pour l'instant cette m�thode ne sert qu'� r�cup�rer le 'name' dans la section HEADER
+  // mais elle pourrait servir �galement � r�cup�rer les auteur, les commentaires, etc..
+  - get_element nom:STRING_CONSTANT in s:STRING_CONSTANT :STRING <-
+  (
+    + index,index2,index3:INTEGER;
+    + section1:STRING;
+    + element:STRING;
+    
+  section1:=get_section s;
+  index:=section1.substring_index (nom,1);
+  index:=section1.substring_index (":=",(index+nom.count));
+  index2:=section1.substring_index (";",(index+nom.count));
+  index3:=section1.substring_index ("->",(index+nom.count));
+  (index3>0).if{index2:=index2.min(index3-1)};
+  
+  element:=STRING.create (index2-index+2);
+  element.copy (section1.substring (index+2) to (index2-1));
+  element.remove_all_occurrences ' ';
+  element.remove_all_occurrences '\n';
+  element
+);
+//renvoit l'ensemble des parents d'un prototype
+- get_parents :ENS_PARENTS <-
+(
+  + section1:STRING;
+  + index:INTEGER;
+  + index2:INTEGER;
+  + parents:ENS_PARENTS;
+  + parent:STRING;
+  
+  parents:=ENS_PARENTS.create;
+  section1:=get_section "INHERIT";
+  index:=1;
+  index2:=1;
+  
+  {(index:=section1.substring_index (":",(index2+1)))!=0}.while_do{
+    ((section1.item (index+1))=='=').if_false{
+      ((index2:=section1.substring_index ("expanded",(index+1)))!=0).if{
+        index:=index2+7;
+      };
+      ((index2:=section1.substring_index (":=",(index+1)))==0).if{
+        ((index2:=section1.substring_index (";",index))==0).if{
+          index2:=section1.substring_index ("<" ,index);
+        };
+      };
+      
+      
+      parent:=STRING.create (index2-index-2);
+      parent.copy (section1.substring (index+1) to (index2-1));
+      parent.remove_all_occurrences ' ';
+      parent.remove_all_occurrences '\n';
+      parent.to_upper;
+      (parents.has parent).if_false{
+        parents.ajouter parent;
+      };
+    }else{
+      index2:=index+1;
+    };
+  };
+  parents
+);
+
+//recherche des attributs
+- get_attributs nom:STRING :ENS_ATTRIBUTS <-
+(
+  + ea:ENS_ATTRIBUTS;
+  + pro:PROTECTED;
+  
+  pro:=PROTECTED.clone;
+  pro.set_nom nom;
+  
+  ea:=ENS_ATTRIBUTS.create;
+  (simple).if_false{
+    ea.append_collection (get_attributs2 PUBLIC);
+    (uniquement_public).if_false{
+      ea.append_collection (get_attributs2 PRIVATE);
+      ea.append_collection (get_attributs2 pro);
+    };
+  };
+  ea
+);
+//recherche des attributs selon un acc�s (public,private,..)
+- get_attributs2 acces:ACCES :ENS_ATTRIBUTS <-
+(
+  + index,index2,index3:INTEGER;
+  + ea:ENS_ATTRIBUTS;
+  + section1:STRING;
+  + tmp_string:STRING;
+  ea:=ENS_ATTRIBUTS.create;
+  
+section1:=get_section (acces.get_type);
+  
+  index:=0;
+  {index!=(section1.count+1)}.while_do{
+    index2:=index3:=index;
+    {
+      index:=index+1;
+      index:=section1.index_of '+' since index;
+    }.do_while {
+  ((index > section1.lower) && {section1.item (index-1)='\''}) && 
+{(index < section1.upper) && {section1.item (index+1)='\''}}
+};
+
+{
+  index2:=index2+1;
+  index2:=section1.index_of '-' since index2;
+}.do_while{
+  ((index2 > section1.lower) && {section1.item (index2-1)='<'}) || {
+  {(index2 > section1.lower) && {section1.item (index2-1)='\''}} && 
+  {(index2 < section1.upper) && {section1.item (index2+1)='\''}}
+  }
+};
+
+{
+  index3:=index3+1;
+  index3:=section1.index_of '*' since index3;
+}.do_while {
+((index3 > section1.lower) && {section1.item (index3-1)='\''}) && 
+{(index3 < section1.upper) && {section1.item (index3+1)='\''}}
+};
+index:=index.min index2.min index3;			
+
+(index != section1.count+1).if {
+  
+  // 				index2:=section1.index_of ';' since (index+1);
+  index2:=section1.substring_index (":=",(index+1));
+  index3:=section1.index_of ';' since (index+1);
+  ({index2>index3}||{index2==0}).if{index2:=index3;};
+  
+  index3:=section1.substring_index ("<-",(index+1));
+  ({index2<index3}||{index3==0}).if{
+    index2:=index2.min((section1.index_of '=' since (index+1))-1);
+    tmp_string:=section1.substring (index+1) to (index2-1);
+    ((tmp_string.index_of ':' since 1)!=(tmp_string.count+1)).if{
+      ea.append_collection (get_attribut tmp_string with acces);
+    };
+  };
+};
+};
+ea
+);
+//analyse une chaine correspondant a un ('i:INTEGER') ou plusieurs ('i,j:INTEGER') attribut(s) et renvoit un ensemble d'attributs
+- get_attribut a:STRING with acces:ACCES :ENS_ATTRIBUTS <-
+(
+  + attribut:ATTRIBUT;
+  + index,index2,index3:INTEGER;
+  + nom,type_retour:STRING;
+  + ea:ENS_ATTRIBUTS;
+  
+  ea:=ENS_ATTRIBUTS.create;
+  a.remove_all_occurrences ' ';
+  a.remove_all_occurrences '\n';
+  
+  index:=a.index_of ':' since 1;
+  type_retour:=a.substring (index+1) to (a.count);
+  type_retour.to_upper;
+  
+  index2:=1;
+  {{(index3:=a.index_of ',' since (index2))!=(a.count+1)}&&{index3<index}}.while_do{
+    attribut:=ATTRIBUT.clone;
+    nom:=a.substring index2 to (index3-1);
+    attribut.make (nom,type_retour,acces);
+    ea.add_last attribut;
+    index2:=index3+1;
+  };
+  attribut:=ATTRIBUT.clone;
+  nom:=a.substring index2 to (index-1);
+  attribut.make (nom,type_retour,acces);	
+  ea.add_last attribut;
+  ea
+);
+
+Section Public
+  
+  //recherche des attributs
+  - get_methodes nom:STRING :ENS_METHODES <-
+  (
+    + em:ENS_METHODES;
+    + pro:PROTECTED;
+    
+    pro:=PROTECTED.clone;
+    pro.set_nom nom;
+    
+    em:=ENS_METHODES.create;
+    (simple).if_false{
+      em.append_collection (get_methodes2 PUBLIC);
+      (uniquement_public).if_false{
+        em.append_collection (get_methodes2 PRIVATE);
+        em.append_collection (get_methodes2 pro);
+      };
+    };
+    em
+  );
+  //recherche des attributs selon un acces(public,private,..)
+  - get_methodes2 acces:ACCES:ENS_METHODES <-
+  (
+    + index,index2,index3:INTEGER;
+    + em:ENS_METHODES;
+    + section1:STRING;
+    + tmp_string:STRING;
+    em:=ENS_METHODES.create;
+    section1:=get_section (acces.get_type);
+    "section\t".print;section1.print;'\n'.print;
+
+    index:=0;
+    {index!=(section1.count+1)}.while_do{
+      index2:=index3:=index;
+      {
+        index:=index+1;
+        index:=section1.index_of '+' since index;
+      }.do_while {
+        ((index > section1.lower) && {section1.item (index-1)='\''}) && 
+        {(index < section1.upper) && {section1.item (index+1)='\''}}
+      };
+        
+      {
+        index2:=index2+1;
+        index2:=section1.index_of '-' since index2;
+      }.do_while {      
+        ((index2 > section1.lower) && {section1.item (index2-1)='<'}) || {
+        ((index2 > section1.lower) && {section1.item (index2-1)='\''}) && {
+          (index2 < section1.upper) && { section1.item (index2+1)='\''}
+        }
+      }
+    };
+    
+    {
+      index3:=index3+1;
+      index3:=section1.index_of '*' since index3;
+    }.do_while {
+      ((index3 > section1.lower) && {section1.item (index3-1)='\''}) && 
+        {(index3 < section1.upper) && {section1.item (index3+1)='\''}}
+    };
+
+
+    index:=index.min index2.min index3;			
+    (index!=(section1.count+1)).if{
+      // 				index2:=section1.index_of ';' since (index+1);
+      index2:=section1.substring_index (":=",(index+1));
+      index3:=section1.index_of ';' since (index+1);
+      ({index2>index3}||{index2==0}).if{index2:=index3;};
+      index3:=section1.substring_index ("<-",(index+1));
+      ({{index2>index3}||{index2==(section1.count+1)}}&&{index3!=0}).if{
+        tmp_string:=section1.substring (index+1) to (index3-1);
+        em.add_last (get_methode (tmp_string,acces));
+      };
+    };
+  };
+  em
+);
+
+Section Public
+
+  - get_methode (m:STRING,acces:ACCES) :METHODE <-
+  (
+    + index,index2,index3:INTEGER;
+    + nom,type_retour,tmp_string2:STRING;
+    + methode:METHODE;
+    + ea:ENS_ATTRIBUTS;
+    
+    ea:=ENS_ATTRIBUTS.create;
+    methode:=METHODE.clone;
+    m.right_adjust; m.left_adjust;
+    type_retour:=STRING.create 4;
+    type_retour.copy "void";
+    m.replace_all '\t' with ' ';
+    m.append " ";
+    index:=(m.index_of ' ' since 1).min(m.index_of ':' since 1).min(m.index_of '(' since 1);
+    nom:= m.substring 1 to (index-1);
+    nom.replace_all '<' with 'c';
+    nom.replace_all '&' with 'e';
+    {(index2:=m.index_of ':' since (index))!=(m.count+1)}.while_do{
+      ((index2-index)<2).if{
+        type_retour:=m.substring (index2+1) to (m.count-1);
+        index:=m.count;
+      }else{
+        + idx_end_type,last_idx:INTEGER;
+        + tmp_string3:STRING;
+        
+        index3:=(m.index_of ' ' since (index2+1)).min(m.index_of ')' since (index2+1));
+        tmp_string2:=m.substring (index+1) to (index3-1);
+        last_idx := tmp_string2.lower;
+        {
+          (
+            idx_end_type := tmp_string2.index_of ':' since last_idx;
+            idx_end_type := tmp_string2.index_of ',' since (idx_end_type+1)
+          ) != tmp_string2.count+1
+      }.while_do {
+        tmp_string3 := tmp_string2.substring last_idx to (idx_end_type-1);
+        "parametres méthodes\t".print;tmp_string3.print;'\n'.print;
+        last_idx := idx_end_type + 1;
+        ea.append_collection(get_attribut tmp_string3 with acces);
+      };
+   /*     
+        ((tmp_string2.occurrences ':')>1).if{
+          index3:=m.index_of ':' since (index2+1);
+          tmp_string2:=m.substring (index+1) to (index3-1);
+        };
+   */     
+        index:=index3;
+      };
+    };
+    type_retour.to_upper;
+    methode.make (nom,type_retour,ea,acces);
+    methode
+  );
+  
+  
+/* 
+  + le_nettoyeur4 <-
+  (
+    + idx_prefix,idx_end:INTEGER;
+    idx_prefix := 1;
+    { idx_prefix != buffer1.count+1 }.while_do{
+      idx_prefix := buffer1.substring_index "//" since idx_prefix;
+      (buffer1.item (idx_prefix-1) != '\\').if{
+        idx_end := buffer1.index_of '\\n' since idx_prefix;
+        buffer1.remove_between idx_prefix to idx_end;
+      };
+    };
+    idx_prefix := 1;
+    { idx_prefix != buffer1.count+1 }.while_do{
+      idx_prefix := buffer1.substring_index "/*" since idx_prefix;
+      (buffer1.item (idx_prefix-1) != '\\').if{
+        idx_end := buffer1.substring_index "*/" since idx_prefix;
+        (buffer1.item (idx_end-1) != '\\').if{
+          buffer1.remove_between idx_prefix to (idx_end+1);
+        };
+      };    
+    };
+    idx_prefix := 1;
+    {
+      ( idx_prefix := (buffer1.index_of '+' since idx_prefix ).min (buffer1.index_of '-' since idx_prefix);
+        idx_end := (buffer1.index_of ';' since idx_prefix).min (buffer1.substring_index "<-" since idx_prefix).min (buffer1.substring_index ":=" since idx_prefix)
+      ) != buffer1.count+1
+    }.while_do{
+      
+    };
+  );
 */
\ No newline at end of file

-- 
Lisaac library examples



More information about the Lisaac-commits mailing list