how to freeze part of an expression for several other expressions gramEvol R package

38 views Asked by At

I want to implement indexing for multiple expressions like this

X[ (i-n):i ],  X[ (i-n):i ]

expressions should look like this

X[ (5-7):5 ],    X[ (5-7):5 ]

X[ (15-2):15 ],    X[ (15-2):15 ]

Here is what I have at the moment

library(gramEvol)
ruleDef <- list(
  xx = grule(c(x,x)),
  x  = gsrule("X[<ii>]"),
  
  ii = gsrule("(<i>-<n>):<i>"),                        
  i  = gvrule(1:20),
  n  = gvrule(1:100)
)
grammarDef <- CreateGrammar(ruleDef)
GrammarRandomExpression(grammarDef)

expression(c(X[(1 - 78):19], X[(15 - 34):2]))

how do i make the grammar generate the same indexes for multiple expressions, like

 X[ (5-7):5 ],    X[ (5-7):5 ]
    
    X[ (15-2):15 ],    X[ (15-2):15 ]
0

There are 0 answers