parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Ответ

moko 15.12.2023 16:45

ни self , ни убрать locals -- не помогает
Но если этого не сделать, код в принципе нерабочий (будет ошибка - 'append' string method not found).
Parser/3.4.6 (compiled on x86_64-unknown-linux-gnu)
Код ниже в версии парсера новее 3.4.4 выдает такой результат:

<pre>this is first line for A
this is second line for A</pre>
<pre>this is first line for B
this is second line for B</pre>


Результат со смешиванием строк будет только в версии 3.4.4 и ранее. Если вы утверждаете, что у вас это не так - нужен полный bug.html. И да, в методе @auto класса задается статическое поле класса (общее для всех экземпляров класса), поэтому в принципе результат не должен вызывать удивления.
@main[]

 $TestA[^TestClass::create[]]
 $TestB[^TestClass::create[]]

 ^TestA.addLine[this is first line for A]
 ^TestB.addLine[this is first line for B]

 ^TestA.addLine[this is second line for A]
 ^TestB.addLine[this is second line for B]

 <pre>^TestA.getText[]</pre>
 <pre>^TestB.getText[]</pre>

@CLASS
TestClass

@auto[]
 $self.tLines[]

@create[]
 $tLines[^table::create{line}]

@addLine[sLine]
 ^tLines.append[$sLine]

@getText[]
 $result[^tLines.menu{$tLines.line}[^#0A]]