mem++;
if mem >= len(curprod) {
ncurprod := make([]int, mem+RULEINC);
- for ll := 0; ll < mem; ll++ {
- ncurprod[ll] = curprod[ll]
- }
+ copy(ncurprod, curprod);
curprod = ncurprod;
}
t = gettok();
mem++;
if mem >= len(curprod) {
ncurprod := make([]int, mem+RULEINC);
- for ll := 0; ll < mem; ll++ {
- ncurprod[ll] = curprod[ll]
- }
+ copy(ncurprod, curprod);
curprod = ncurprod;
}
}
}
moreprod();
prdptr[nprod] = make([]int, mem);
- for ll := 0; ll < mem; ll++ {
- prdptr[nprod][ll] = curprod[ll]
- }
+ copy(prdptr[nprod], curprod);
nprod++;
moreprod();
levprd[nprod] = 0;
alevprd := make([]int, nn);
arlines := make([]int, nn);
- for ll := 0; ll < n; ll++ {
- aprod[ll] = prdptr[ll];
- alevprd[ll] = levprd[ll];
- arlines[ll] = rlines[ll];
- }
+ copy(aprod, prdptr);
+ copy(alevprd, levprd);
+ copy(arlines, rlines);
prdptr = aprod;
levprd = alevprd;
nnonter++;
if nnonter >= len(nontrst) {
anontrst := make([]Symb, nnonter+SYMINC);
- for ll := 0; ll < len(nontrst); ll++ {
- anontrst[ll] = nontrst[ll]
- }
+ copy(anontrst, nontrst);
nontrst = anontrst;
}
nontrst[nnonter] = Symb{s, 0};
atokset := make([]Symb, nn);
atoklev := make([]int, nn);
- for ll := 0; ll < len(tokset); ll++ {
- atoklev[ll] = toklev[ll];
- atokset[ll] = tokset[ll];
- }
+ copy(atoklev, toklev);
+ copy(atokset, tokset);
tokset = atokset;
toklev = atoklev;
continue;
}
pres[i] = make([][]int, n);
- for ll := 0; ll < n; ll++ {
- pres[i][ll] = curres[ll]
- }
+ copy(pres[i], curres);
}
fatfl = 1;
if nerrors != 0 {
for p := pstate[i]; p < q; p++ {
wsets[cwp].pitem = statemem[p].pitem;
wsets[cwp].flag = 1; // this item must get closed
- for ll := 0; ll < len(wsets[cwp].ws); ll++ {
- wsets[cwp].ws[ll] = statemem[p].look[ll]
- }
+ copy(wsets[cwp].ws, statemem[p].look);
cwp++;
}
// not there; make a new entry
if cwp >= len(wsets) {
awsets := make([]Wset, cwp+WSETINC);
- for ll := 0; ll < len(wsets); ll++ {
- awsets[ll] = wsets[ll]
- }
+ copy(awsets, wsets);
wsets = awsets;
}
wsets[cwp].pitem = Pitem{prd, 0, prd[0], -prd[len(prd)-1]};
wsets[cwp].ws = mkset();
if nolook == 0 {
work = 1;
- for ll := 0; ll < len(wsets[cwp].ws); ll++ {
- wsets[cwp].ws[ll] = clset[ll]
- }
+ copy(wsets[cwp].ws, clset);
}
cwp++;
}
j := pstate[nstate+1];
if j >= len(statemem) {
asm := make([]Item, j+STATEINC);
- for ll := 0; ll < len(statemem); ll++ {
- asm[ll] = statemem[ll]
- }
+ copy(asm, statemem);
statemem = asm;
}
statemem[j].pitem = p;
if nolook == 0 {
s := mkset();
- for ll := 0; ll < len(set); ll++ {
- s[ll] = set[ll]
- }
+ copy(s, set);
statemem[j].look = s;
}
j++;
func bitset(set Lkset, bit int) int { return set[bit>>5] & (1 << uint(bit&31)) }
-func setbit(set Lkset, bit int) { set[bit>>5] |= (1 << uint(bit & 31)) }
+func setbit(set Lkset, bit int) { set[bit>>5] |= (1 << uint(bit&31)) }
func mkset() Lkset { return make([]int, tbitset) }