User Tools

Site Tools


01_user_documentation:07_rgg_xl:02_xl:04_production:15_extent_index

Extent index

When a node is created in a production statement, it is added by default on the same extent index as the most left Node from the query.

Example

module A;
module B;
 
protected void init ()
[
	Axiom ==>A.(setExtentIndex(2)) B.(setExtentIndex(1));
]
 
public void run(){
	// The node B is on the index 1 (i.e. the 2nd one) .It can be queried
	// with @2 (with is the same as @0b10 i.e. 2nd bit =1, 1rst bit = 0)
	println("B found: "+(*@2; B*) ); // print b
 
	// the query is applied on extent index 1 and 2 (110). Thus,
	// both A and B are seen.
	// the production A B will have as default the extent index of A (i.e. 2)
	[@0b110; A B ==> A B;]
	derive(); // apply the modification
 
	// There are no B in the index 1 anymore.
	println("B not found: "+ (*@2; B*) ); 
 
	// the new B is in index 2. (4 is 100 in binary)
	println("new B found: "+ (*@4; B*) ); 
}
01_user_documentation/07_rgg_xl/02_xl/04_production/15_extent_index.txt · Last modified: 2025/10/13 10:44 by gaetan