public override void Generate(Method generator) { var morpheme = Phrase.GetEnd(MatchType); Phrase.DoubleCheck(morpheme, MorphemeAttribute.Class); generator.locals.Add(new Variable(morpheme.type, name)); }
public void Generate(Class generator) { var morpheme = Phrase.GetEnd(MatchType); Phrase.DoubleCheck(morpheme, MorphemeAttribute.Class); generator.public_field.Add(new Variable(morpheme.type, name)); }
public override void Generate(Method generator) { value.Check(generator); value.Generate(generator); var morpheme = Phrase.GetEnd(target); Phrase.DoubleCheck(morpheme, MorphemeAttribute.Object); var index = generator.GetVar(morpheme.name, out var attribute); if (index == -1) { Error(UnknownVariable, lex_line, lex_ch, morpheme.name); } generator.AddCode(attribute == 1?ISet.Storeloc:ISet.StoreField, index); }