<feed xmlns='http://www.w3.org/2005/Atom'>
<title>parscan/lang, branch main</title>
<subtitle>experimental interpreter
</subtitle>
<link rel='alternate' type='text/html' href='https://git.vertes.org/parscan/'/>
<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>
<entry>
<title>fix: improve handling of indirections</title>
<updated>2026-01-14T17:44:17+00:00</updated>
<author>
<name>Marc Vertes</name>
<email>mvertes@free.fr</email>
</author>
<published>2026-01-14T17:44:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vertes.org/parscan/commit/?id=31e3793202402fda21905027c18ebfa5c8d8c832'/>
<id>31e3793202402fda21905027c18ebfa5c8d8c832</id>
<content type='text'>
Added 2 VM instructions, FnewE variant of Fnew with a dereference,
and FieldE, variant of Field with dereference.
It's now possible to pointers in structs and literal composites.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Added 2 VM instructions, FnewE variant of Fnew with a dereference,
and FieldE, variant of Field with dereference.
It's now possible to pointers in structs and literal composites.
</pre>
</div>
</content>
</entry>
<entry>
<title>fix: handle assign statements on map elements</title>
<updated>2026-01-11T18:02:27+00:00</updated>
<author>
<name>Marc Vertes</name>
<email>mvertes@free.fr</email>
</author>
<published>2026-01-11T18:02:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vertes.org/parscan/commit/?id=5a04b5512a128bd1805792cca4eabacf5fd49b27'/>
<id>5a04b5512a128bd1805792cca4eabacf5fd49b27</id>
<content type='text'>
A new token MapAssign is added to implement assignements involving
a map, slice or array, an index key expression and a value expression.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
A new token MapAssign is added to implement assignements involving
a map, slice or array, an index key expression and a value expression.
</pre>
</div>
</content>
</entry>
<entry>
<title>fix: improve handling of composite literal struct expressions</title>
<updated>2026-01-07T18:06:23+00:00</updated>
<author>
<name>Marc Vertes</name>
<email>mvertes@free.fr</email>
</author>
<published>2026-01-07T18:06:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vertes.org/parscan/commit/?id=6875facb39de63eb6353be2f700b9eacb631e9fa'/>
<id>6875facb39de63eb6353be2f700b9eacb631e9fa</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>fix: set 'HasInit' token property in language definition</title>
<updated>2026-01-07T11:09:20+00:00</updated>
<author>
<name>Marc Vertes</name>
<email>mvertes@free.fr</email>
</author>
<published>2026-01-07T11:09:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vertes.org/parscan/commit/?id=ca80eeaa812b49afea75d3084d0c62770e4a8d18'/>
<id>ca80eeaa812b49afea75d3084d0c62770e4a8d18</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>fix: correct and simplify parsing of expressions.</title>
<updated>2026-01-06T18:02:29+00:00</updated>
<author>
<name>Marc Vertes</name>
<email>mvertes@free.fr</email>
</author>
<published>2026-01-06T18:02:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vertes.org/parscan/commit/?id=bffc031ea83c7176aac3d3828de0060c6630140c'/>
<id>bffc031ea83c7176aac3d3828de0060c6630140c</id>
<content type='text'>
The expressions were parsed from right to left, and it was incorrect and
cumbersome. Now they are processed from left to right, with a simpler
and correct handling of precedence rules.

The vm function call syntax has been changed to set the function
before the input arguments on the stack, as to follow the declaring
order in languages.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The expressions were parsed from right to left, and it was incorrect and
cumbersome. Now they are processed from left to right, with a simpler
and correct handling of precedence rules.

The vm function call syntax has been changed to set the function
before the input arguments on the stack, as to follow the declaring
order in languages.
</pre>
</div>
</content>
</entry>
<entry>
<title>feat: support of struct literal composite</title>
<updated>2025-12-02T14:45:14+00:00</updated>
<author>
<name>Marc Vertes</name>
<email>mvertes@free.fr</email>
</author>
<published>2025-12-02T14:45:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vertes.org/parscan/commit/?id=3d64f909cfb55d8886ac4b4839a98f8f6cdc98e7'/>
<id>3d64f909cfb55d8886ac4b4839a98f8f6cdc98e7</id>
<content type='text'>
Added missing vm instructions to allocate a typed value on the stack
and to set a structure field.
It's possible now to generate struct literal composites for non
keyed struct fields.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Added missing vm instructions to allocate a typed value on the stack
and to set a structure field.
It's possible now to generate struct literal composites for non
keyed struct fields.
</pre>
</div>
</content>
</entry>
<entry>
<title>fix: improve parser, compiler and interpreter APIs</title>
<updated>2025-11-27T13:50:07+00:00</updated>
<author>
<name>Marc Vertes</name>
<email>mvertes@free.fr</email>
</author>
<published>2025-11-27T13:50:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vertes.org/parscan/commit/?id=22b020225ae77ca1cf9f9984817df9b7fd1aaa12'/>
<id>22b020225ae77ca1cf9f9984817df9b7fd1aaa12</id>
<content type='text'>
Pass a language spec as an argument when create a new parser,
compiler or interpreter.

Also move the REPL code in interpreter package.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Pass a language spec as an argument when create a new parser,
compiler or interpreter.

Also move the REPL code in interpreter package.
</pre>
</div>
</content>
</entry>
<entry>
<title>feat: initial and partial support of composite expressions (#9)</title>
<updated>2024-04-23T12:36:57+00:00</updated>
<author>
<name>Marc Vertes</name>
<email>mvertes@free.fr</email>
</author>
<published>2024-04-23T12:36:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vertes.org/parscan/commit/?id=0063922f5c8a07b78603b2da7f6a3c2094711c3d'/>
<id>0063922f5c8a07b78603b2da7f6a3c2094711c3d</id>
<content type='text'>
A new `Composite` token is created. Literal composite expressions
are recognized and partially handled by the parser but not yet
by the code generator.

Other cosmetic changes are present.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
A new `Composite` token is created. Literal composite expressions
are recognized and partially handled by the parser but not yet
by the code generator.

Other cosmetic changes are present.</pre>
</div>
</content>
</entry>
</feed>
