<feed xmlns='http://www.w3.org/2005/Atom'>
<title>parscan/comp, branch main</title>
<subtitle>experimental interpreter
</subtitle>
<link rel='alternate' type='text/html' href='https://git.vertes.org/parscan/'/>
<entry>
<title>fix: improve multiple define</title>
<updated>2026-01-27T15:37:02+00:00</updated>
<author>
<name>Marc Vertes</name>
<email>mvertes@free.fr</email>
</author>
<published>2026-01-27T15:37:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vertes.org/parscan/commit/?id=60f6ebc8d8369721e105d826145af2b8856ac67e'/>
<id>60f6ebc8d8369721e105d826145af2b8856ac67e</id>
<content type='text'>
The VM Vassign instruction now takes an argument to indicates the
number of assignations to perform on the stack.
Definitions with a function returning multiple values now work.
There is still some simplifications, and also to apply the same
strategy to var declarations with assign.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The VM Vassign instruction now takes an argument to indicates the
number of assignations to perform on the stack.
Definitions with a function returning multiple values now work.
There is still some simplifications, and also to apply the same
strategy to var declarations with assign.
</pre>
</div>
</content>
</entry>
<entry>
<title>fix: improve multi assign</title>
<updated>2026-01-26T17:44:29+00:00</updated>
<author>
<name>Marc Vertes</name>
<email>mvertes@free.fr</email>
</author>
<published>2026-01-26T17:44:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vertes.org/parscan/commit/?id=aa5861917ac2543f85bf4cfefbb69cf501d4de41'/>
<id>aa5861917ac2543f85bf4cfefbb69cf501d4de41</id>
<content type='text'>
Do not consider assign operators in expression handling, they are
part of statements.
Isolate parsing of left hand side and right hand side in assignments.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Do not consider assign operators in expression handling, they are
part of statements.
Isolate parsing of left hand side and right hand side in assignments.
</pre>
</div>
</content>
</entry>
<entry>
<title>feat: add Next2 and Pull2 instructions in vm.</title>
<updated>2026-01-23T12:05:10+00:00</updated>
<author>
<name>Marc Vertes</name>
<email>mvertes@free.fr</email>
</author>
<published>2026-01-23T12:05:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vertes.org/parscan/commit/?id=3113c7f058e427c49e936f82a518766ddb869c58'/>
<id>3113c7f058e427c49e936f82a518766ddb869c58</id>
<content type='text'>
These will be used for range clause assigning both key and value.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
These will be used for range clause assigning both key and value.
</pre>
</div>
</content>
</entry>
<entry>
<title>feat: make Next iterator instruction faster and more efficient</title>
<updated>2026-01-23T10:16:12+00:00</updated>
<author>
<name>Marc Vertes</name>
<email>mvertes@free.fr</email>
</author>
<published>2026-01-23T10:16:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vertes.org/parscan/commit/?id=2837dabf7818666a9366d659d2da3b9055140740'/>
<id>2837dabf7818666a9366d659d2da3b9055140740</id>
<content type='text'>
Branching control is delegated directly to the Next instruction,
which now takes the location of loop exit as first argument.
It avoids the use of JumpFalse, plus the stack storage for the
condition.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Branching control is delegated directly to the Next instruction,
which now takes the location of loop exit as first argument.
It avoids the use of JumpFalse, plus the stack storage for the
condition.
</pre>
</div>
</content>
</entry>
<entry>
<title>chore: make Compiler.emit a method instead of closure</title>
<updated>2026-01-23T08:37:11+00:00</updated>
<author>
<name>Marc Vertes</name>
<email>mvertes@free.fr</email>
</author>
<published>2026-01-23T08:37:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vertes.org/parscan/commit/?id=abd8581bac36018be2f090e05fdd00ea74f6ca4b'/>
<id>abd8581bac36018be2f090e05fdd00ea74f6ca4b</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>chore: use parser.Token.Arg to store generated parameters</title>
<updated>2026-01-23T08:23:51+00:00</updated>
<author>
<name>Marc Vertes</name>
<email>mvertes@free.fr</email>
</author>
<published>2026-01-23T08:23:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vertes.org/parscan/commit/?id=79eaad4bbb778b04501fca724ce2641e25b33f3a'/>
<id>79eaad4bbb778b04501fca724ce2641e25b33f3a</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>chore: use token helpers</title>
<updated>2026-01-22T22:22:46+00:00</updated>
<author>
<name>Marc Vertes</name>
<email>mvertes@free.fr</email>
</author>
<published>2026-01-22T22:22:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vertes.org/parscan/commit/?id=9e4a84f78283f9b5a972245076b26da312490ff0'/>
<id>9e4a84f78283f9b5a972245076b26da312490ff0</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>chore: refactor token types to avoid mutate scanner tokens</title>
<updated>2026-01-22T10:33:32+00:00</updated>
<author>
<name>Marc Vertes</name>
<email>mvertes@free.fr</email>
</author>
<published>2026-01-22T10:33:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vertes.org/parscan/commit/?id=9bf668e7114bb92a0b072db5d4e092c0b8f964c4'/>
<id>9bf668e7114bb92a0b072db5d4e092c0b8f964c4</id>
<content type='text'>
Mutating scanner tokens or reusing scanner token attributes to
store other metadata is a hack. Introduce a new parser token
type with arbitrary args. The next step will be to use the arg
field instead of scanner token fields.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Mutating scanner tokens or reusing scanner token attributes to
store other metadata is a hack. Introduce a new parser token
type with arbitrary args. The next step will be to use the arg
field instead of scanner token fields.
</pre>
</div>
</content>
</entry>
<entry>
<title>feat: add support for range clause and iterators</title>
<updated>2026-01-21T18:26:42+00:00</updated>
<author>
<name>Marc Vertes</name>
<email>mvertes@free.fr</email>
</author>
<published>2026-01-21T18:26:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vertes.org/parscan/commit/?id=c922c797204069f42a7abf88500c5708f68a8e43'/>
<id>c922c797204069f42a7abf88500c5708f68a8e43</id>
<content type='text'>
- vm: added Pull, Next and Stop instructions, to implement iterators
- lang: add Range, Next and Stop tokens
- parser: handle range clause. Still naive and incomplete.
- comp: generate iterator instructions from range clause.

Work in progress. Only initial support for slices. Many more tests
and combinations needed, but the main pattern is there now.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- vm: added Pull, Next and Stop instructions, to implement iterators
- lang: add Range, Next and Stop tokens
- parser: handle range clause. Still naive and incomplete.
- comp: generate iterator instructions from range clause.

Work in progress. Only initial support for slices. Many more tests
and combinations needed, but the main pattern is there now.
</pre>
</div>
</content>
</entry>
<entry>
<title>feat: handle slice expressions</title>
<updated>2026-01-16T11:30:31+00:00</updated>
<author>
<name>Marc Vertes</name>
<email>mvertes@free.fr</email>
</author>
<published>2026-01-16T11:30:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vertes.org/parscan/commit/?id=ee9397bc031dc33e4f735b3331643bbf60a0d17a'/>
<id>ee9397bc031dc33e4f735b3331643bbf60a0d17a</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
