public void GetSelect var production=LL1Itemgetproduction; foreach var nofinal in LL1Itemnofinal selectsAddnofinalnew Dictionarystring Liststring; 对非终结符的每个产生式获取select值 f
该方法是用于获取LL1文法中每个非终结符的select值的。
首先,该方法获取了所有产生式和非终结符的集合,然后对于每个非终结符,都创建了一个select值的字典。
接下来,对于每个非终结符的每个产生式,都创建了一个select值的列表。在对每个产生式的字符进行遍历时,如果该字符是终结符,则将该字符加入该产生式的select列表中。如果该字符是非终结符,则获取该非终结符的first集合,并将其中除空串外的元素加入该产生式的select列表中。如果该字符的first集合中包含空串,则继续遍历下一个字符,直到该产生式的最后一个字符。如果该产生式的最后一个字符的first集合中包含空串,那么将该非终结符的follow集合中的元素加入该产生式的select列表中。
最终,得到了每个非终结符的每个产生式的select值。
原文地址: https://www.cveoy.top/t/topic/gVlZ 著作权归作者所有。请勿转载和采集!