package Ġru . drone lek tron . grammar parser . lr one . generator Ċ Ċ data Ġclass ĠS it uation ( val Ġrule : ĠGram mar Rule , Ġval Ġlook ahead : ĠString , Ġval Ġposition : ĠInt ) Ġ{ Ċ ĉ val Ġcurrent Symbol Ċĉ ĉ get () Ġ= Ġget Symbol Or Look ahead ( position ) ĊĊ ĉ val Ġnext Symbol : ĠString Ċĉ ĉ get () Ġ= Ġget Symbol Or Look ahead ( position Ġ+ Ġ 1 ) ĊĊ ĉ fun Ġis Passed () Ġ= Ġposition Ġ== Ġrule . symbols . size Ċ ĉ fun Ġis Not Passed () Ġ= Ġ! is Passed () ĊĊ ĉ private Ġfun Ġget Symbol Or Look ahead ( position : ĠInt ) Ġ= Ġif Ġ( position Ġ< Ġrule . symbols . size ) Ġ{ Ċĉ ĉ rule . symbols [ position ] Ċ ĉ } Ġelse Ġ{ Ċĉ ĉ look ahead Ċ ĉ } Ċ } Ċ