<feed xmlns='http://www.w3.org/2005/Atom'>
<title>parscan/scanner, branch fix-untyped-assign</title>
<subtitle>experimental interpreter
</subtitle>
<link rel='alternate' type='text/html' href='https://git.vertes.org/parscan/'/>
<entry>
<title>fix and simplify Token.Name()</title>
<updated>2024-06-28T13:38:45+00:00</updated>
<author>
<name>Marc Vertes</name>
<email>mvertes@free.fr</email>
</author>
<published>2024-06-28T13:38:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vertes.org/parscan/commit/?id=4acaa8e1630a359117d535a20b0af9554058d1e3'/>
<id>4acaa8e1630a359117d535a20b0af9554058d1e3</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>chore: add linters and some lint fixes (#8)</title>
<updated>2024-04-02T09:27:13+00:00</updated>
<author>
<name>Marc Vertes</name>
<email>mvertes@free.fr</email>
</author>
<published>2024-04-02T09:27:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vertes.org/parscan/commit/?id=1bff92c52b27b9a516599e172fe9852c3d99be38'/>
<id>1bff92c52b27b9a516599e172fe9852c3d99be38</id>
<content type='text'>
* chore: add linters and some lint fixes

Configure some golangci-lint linters to get the code quality right.
Apply the first fixes.

Next step will be to add github actions to run lint and tests in
github CI.

* chore: more lint, fixed comments and variable names. no semantic change.

* chore: add Makefile

This makefile is intended to be used as a local substitute to github
actions.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* chore: add linters and some lint fixes

Configure some golangci-lint linters to get the code quality right.
Apply the first fixes.

Next step will be to add github actions to run lint and tests in
github CI.

* chore: more lint, fixed comments and variable names. no semantic change.

* chore: add Makefile

This makefile is intended to be used as a local substitute to github
actions.</pre>
</div>
</content>
</entry>
<entry>
<title>feat: add initial support for import, provide minimal fmt (#6)</title>
<updated>2024-03-22T15:59:25+00:00</updated>
<author>
<name>Marc Vertes</name>
<email>mvertes@free.fr</email>
</author>
<published>2024-03-22T15:59:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vertes.org/parscan/commit/?id=362f7c9c45598b429c92e67756f41b690043e0c4'/>
<id>362f7c9c45598b429c92e67756f41b690043e0c4</id>
<content type='text'>
The `import` statement is now parsed. It only provides minimal
support for the `fmt` package (only `Println` symbol is defined).

This should be sufficient to pass a few tests.

Full support of package namespaces, source and binary imports will be
supported later, based on this work.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The `import` statement is now parsed. It only provides minimal
support for the `fmt` package (only `Println` symbol is defined).

This should be sufficient to pass a few tests.

Full support of package namespaces, source and binary imports will be
supported later, based on this work.</pre>
</div>
</content>
</entry>
<entry>
<title>feat: improve debug output of tokens</title>
<updated>2024-03-14T22:22:23+00:00</updated>
<author>
<name>Marc Vertes</name>
<email>mvertes@free.fr</email>
</author>
<published>2024-03-14T22:22:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vertes.org/parscan/commit/?id=5da3a651ba08859ccc1cdf1094603411696c8df2'/>
<id>5da3a651ba08859ccc1cdf1094603411696c8df2</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>chore: import from gnolang</title>
<updated>2024-01-15T15:29:41+00:00</updated>
<author>
<name>Marc Vertes</name>
<email>mvertes@free.fr</email>
</author>
<published>2024-01-15T15:29:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vertes.org/parscan/commit/?id=828cfd1c8da5e243fd0f34530fb1a7faab49784e'/>
<id>828cfd1c8da5e243fd0f34530fb1a7faab49784e</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>move to a direct byte code compiler (#8)</title>
<updated>2023-10-12T08:51:58+00:00</updated>
<author>
<name>Marc Vertes</name>
<email>marc.vertes@tendermint.com</email>
</author>
<published>2023-10-12T08:51:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vertes.org/parscan/commit/?id=37b9da32d3b911091deb254f6cba2a137c471287'/>
<id>37b9da32d3b911091deb254f6cba2a137c471287</id>
<content type='text'>
* chore: refactor to keep only the new parser and bytecode vm

* scanner: remove Token.value field

* scanner: remove scanner.kind field

* chore: move language specification in lang package

This avoid a cyclic dependency in scanner_test which can now use
the golang/GoSpec language specification for Go.

* clean code

* scanner: export scanner fields

Also parser now generate function calls, including externals.

* chore: fix lint issues

* parser: handle strings

* wip

* parser: implement support for 'if, else, else if' statements

Resolving labels in the compiler still in progress.

* parser: support if statements, improve compiler

* improve handling of functions

* improve support of local variables

* scanner: trim leading and trailing spaces

* fixes to make fibonacci work

* parser: improve README, fix function parameters parsing</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* chore: refactor to keep only the new parser and bytecode vm

* scanner: remove Token.value field

* scanner: remove scanner.kind field

* chore: move language specification in lang package

This avoid a cyclic dependency in scanner_test which can now use
the golang/GoSpec language specification for Go.

* clean code

* scanner: export scanner fields

Also parser now generate function calls, including externals.

* chore: fix lint issues

* parser: handle strings

* wip

* parser: implement support for 'if, else, else if' statements

Resolving labels in the compiler still in progress.

* parser: support if statements, improve compiler

* improve handling of functions

* improve support of local variables

* scanner: trim leading and trailing spaces

* fixes to make fibonacci work

* parser: improve README, fix function parameters parsing</pre>
</div>
</content>
</entry>
<entry>
<title>scanner: automatic semi-colon insertion at EOF</title>
<updated>2023-09-08T09:48:35+00:00</updated>
<author>
<name>Marc Vertes</name>
<email>mvertes@free.fr</email>
</author>
<published>2023-09-08T09:48:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vertes.org/parscan/commit/?id=a21b9b12ad865a19ff687645082f9093c4101039'/>
<id>a21b9b12ad865a19ff687645082f9093c4101039</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>scanner: add automatic insertion of semi-colon after newline</title>
<updated>2023-09-06T09:55:09+00:00</updated>
<author>
<name>Marc Vertes</name>
<email>mvertes@free.fr</email>
</author>
<published>2023-09-06T09:55:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vertes.org/parscan/commit/?id=555e5bfc03daaf40c78eb2ad540cd73ec4ae2831'/>
<id>555e5bfc03daaf40c78eb2ad540cd73ec4ae2831</id>
<content type='text'>
As specified in the Go specification, adapted to the following:
- the scanner recognise blocks as tokens
- the scanner is multi-language: define keywords in scanner spec
- as a result, we define how to skip semi-colon insertion rather
  than how to add it.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
As specified in the Go specification, adapted to the following:
- the scanner recognise blocks as tokens
- the scanner is multi-language: define keywords in scanner spec
- as a result, we define how to skip semi-colon insertion rather
  than how to add it.
</pre>
</div>
</content>
</entry>
<entry>
<title>chore: refactor some APIs</title>
<updated>2023-09-06T06:49:19+00:00</updated>
<author>
<name>Marc Vertes</name>
<email>mvertes@free.fr</email>
</author>
<published>2023-09-06T06:49:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vertes.org/parscan/commit/?id=6dd78f44adf6fb032d0ecd9db813651b9524fcac'/>
<id>6dd78f44adf6fb032d0ecd9db813651b9524fcac</id>
<content type='text'>
The scanner returns a slice of pointers to tokens instead of a
slice of tokens. The parser now pass the initial node context.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The scanner returns a slice of pointers to tokens instead of a
slice of tokens. The parser now pass the initial node context.
</pre>
</div>
</content>
</entry>
<entry>
<title>codegen: add interpreter tests</title>
<updated>2023-09-04T14:58:15+00:00</updated>
<author>
<name>Marc Vertes</name>
<email>mvertes@free.fr</email>
</author>
<published>2023-09-04T14:58:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vertes.org/parscan/commit/?id=4241593b42bffac2f8fcb63f1e88621fe025e360'/>
<id>4241593b42bffac2f8fcb63f1e88621fe025e360</id>
<content type='text'>
Also simplify project structure. The executable is now produced in
the root directory. Work in progress.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Also simplify project structure. The executable is now produced in
the root directory. Work in progress.
</pre>
</div>
</content>
</entry>
</feed>
