<feed xmlns='http://www.w3.org/2005/Atom'>
<title>parscan/scanner, branch parscan-struct</title>
<subtitle>experimental interpreter
</subtitle>
<link rel='alternate' type='text/html' href='https://git.vertes.org/parscan/'/>
<entry>
<title>fix (parser): don't panic if assign of define untyped value (#10)</title>
<updated>2024-07-18T10:56:29+00:00</updated>
<author>
<name>Marc Vertes</name>
<email>mvertes@free.fr</email>
</author>
<published>2024-07-18T10:56:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vertes.org/parscan/commit/?id=dabd9e5eb81bbc9aeaeb32fb3e3ce83eef258a77'/>
<id>dabd9e5eb81bbc9aeaeb32fb3e3ce83eef258a77</id>
<content type='text'>
* fix (parser): don't panic if assign of define untyped value

In case of defining or assigning to untyped value, the type has
to be taken from the source value instead of the target value.

The vm test coverage has also been slightly improved.

* fix and simplify Token.Name()

* improve parser errors</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* fix (parser): don't panic if assign of define untyped value

In case of defining or assigning to untyped value, the type has
to be taken from the source value instead of the target value.

The vm test coverage has also been slightly improved.

* fix and simplify Token.Name()

* improve parser errors</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>
