<feed xmlns='http://www.w3.org/2005/Atom'>
<title>parscan/comp, branch main</title>
<subtitle>experimental interpreter
</subtitle>
<id>https://git.vertes.org/parscan/atom?h=main</id>
<link rel='self' href='https://git.vertes.org/parscan/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://git.vertes.org/parscan/'/>
<updated>2026-01-27T15:37:02Z</updated>
<entry>
<title>fix: improve multiple define</title>
<updated>2026-01-27T15:37:02Z</updated>
<author>
<name>Marc Vertes</name>
<email>mvertes@free.fr</email>
</author>
<published>2026-01-27T15:37:02Z</published>
<link rel='alternate' type='text/html' href='https://git.vertes.org/parscan/commit/?id=60f6ebc8d8369721e105d826145af2b8856ac67e'/>
<id>urn:sha1: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>
</entry>
<entry>
<title>fix: improve multi assign</title>
<updated>2026-01-26T17:44:29Z</updated>
<author>
<name>Marc Vertes</name>
<email>mvertes@free.fr</email>
</author>
<published>2026-01-26T17:44:29Z</published>
<link rel='alternate' type='text/html' href='https://git.vertes.org/parscan/commit/?id=aa5861917ac2543f85bf4cfefbb69cf501d4de41'/>
<id>urn:sha1: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>
</entry>
<entry>
<title>feat: add Next2 and Pull2 instructions in vm.</title>
<updated>2026-01-23T12:05:10Z</updated>
<author>
<name>Marc Vertes</name>
<email>mvertes@free.fr</email>
</author>
<published>2026-01-23T12:05:10Z</published>
<link rel='alternate' type='text/html' href='https://git.vertes.org/parscan/commit/?id=3113c7f058e427c49e936f82a518766ddb869c58'/>
<id>urn:sha1:3113c7f058e427c49e936f82a518766ddb869c58</id>
<content type='text'>
These will be used for range clause assigning both key and value.
</content>
</entry>
<entry>
<title>feat: make Next iterator instruction faster and more efficient</title>
<updated>2026-01-23T10:16:12Z</updated>
<author>
<name>Marc Vertes</name>
<email>mvertes@free.fr</email>
</author>
<published>2026-01-23T10:16:12Z</published>
<link rel='alternate' type='text/html' href='https://git.vertes.org/parscan/commit/?id=2837dabf7818666a9366d659d2da3b9055140740'/>
<id>urn:sha1: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>
</entry>
<entry>
<title>chore: make Compiler.emit a method instead of closure</title>
<updated>2026-01-23T08:37:11Z</updated>
<author>
<name>Marc Vertes</name>
<email>mvertes@free.fr</email>
</author>
<published>2026-01-23T08:37:11Z</published>
<link rel='alternate' type='text/html' href='https://git.vertes.org/parscan/commit/?id=abd8581bac36018be2f090e05fdd00ea74f6ca4b'/>
<id>urn:sha1:abd8581bac36018be2f090e05fdd00ea74f6ca4b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>chore: use parser.Token.Arg to store generated parameters</title>
<updated>2026-01-23T08:23:51Z</updated>
<author>
<name>Marc Vertes</name>
<email>mvertes@free.fr</email>
</author>
<published>2026-01-23T08:23:51Z</published>
<link rel='alternate' type='text/html' href='https://git.vertes.org/parscan/commit/?id=79eaad4bbb778b04501fca724ce2641e25b33f3a'/>
<id>urn:sha1:79eaad4bbb778b04501fca724ce2641e25b33f3a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>chore: use token helpers</title>
<updated>2026-01-22T22:22:46Z</updated>
<author>
<name>Marc Vertes</name>
<email>mvertes@free.fr</email>
</author>
<published>2026-01-22T22:22:46Z</published>
<link rel='alternate' type='text/html' href='https://git.vertes.org/parscan/commit/?id=9e4a84f78283f9b5a972245076b26da312490ff0'/>
<id>urn:sha1:9e4a84f78283f9b5a972245076b26da312490ff0</id>
<content type='text'>
</content>
</entry>
<entry>
<title>chore: refactor token types to avoid mutate scanner tokens</title>
<updated>2026-01-22T10:33:32Z</updated>
<author>
<name>Marc Vertes</name>
<email>mvertes@free.fr</email>
</author>
<published>2026-01-22T10:33:32Z</published>
<link rel='alternate' type='text/html' href='https://git.vertes.org/parscan/commit/?id=9bf668e7114bb92a0b072db5d4e092c0b8f964c4'/>
<id>urn:sha1: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>
</entry>
<entry>
<title>feat: add support for range clause and iterators</title>
<updated>2026-01-21T18:26:42Z</updated>
<author>
<name>Marc Vertes</name>
<email>mvertes@free.fr</email>
</author>
<published>2026-01-21T18:26:42Z</published>
<link rel='alternate' type='text/html' href='https://git.vertes.org/parscan/commit/?id=c922c797204069f42a7abf88500c5708f68a8e43'/>
<id>urn:sha1: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>
</entry>
<entry>
<title>feat: handle slice expressions</title>
<updated>2026-01-16T11:30:31Z</updated>
<author>
<name>Marc Vertes</name>
<email>mvertes@free.fr</email>
</author>
<published>2026-01-16T11:30:31Z</published>
<link rel='alternate' type='text/html' href='https://git.vertes.org/parscan/commit/?id=ee9397bc031dc33e4f735b3331643bbf60a0d17a'/>
<id>urn:sha1:ee9397bc031dc33e4f735b3331643bbf60a0d17a</id>
<content type='text'>
</content>
</entry>
</feed>
