Commit e63af4e3 authored by Maxime Perrotin's avatar Maxime Perrotin
Browse files

Update README for version 1.0RC

parent 5605d33b
*** Check the complete README in file README.md ***
OpenGEODE is a tiny, free SDL editor done in the scope of the TASTE project. OpenGEODE is a tiny, free SDL editor done in the scope of the TASTE project.
SDL is the Specification and Description Language (Z100 standard from ITU-T) SDL is the Specification and Description Language (Z100 standard from ITU-T)
......
...@@ -39,16 +39,19 @@ Features ...@@ -39,16 +39,19 @@ Features
Installation Installation
============ ============
Pre-requisites On Windows, download the binary from [here](http://download.tuxfamily.org/taste/opengeode_windows.zip)
--------------
Uzip it and run opengeode.exe. It contains everything without any other external dependencies.
Linux Pre-requisites
--------------------
There are several dependencies for OpenGEODE: There are several dependencies for OpenGEODE:
Apart from pygraphviz, all of them exist for Linux, Windows, FreeBSD, and most likely Mac OSX
- Python 2.7 with pip - Python 2.7 with pip
- Pyside (the Qt bindings for Python) - Pyside (the Qt bindings for Python)
- Python ANTLR Runtime - Python ANTLR Runtime
- PyGraphviz (Linux only - not available on Windows) - PyGraphviz
- enum34, singledispatch - enum34, singledispatch
- ASN1SCC - ASN1SCC
- (optional) GNAT to build the generated Ada code - (optional) GNAT to build the generated Ada code
...@@ -59,8 +62,10 @@ Apart from pygraphviz, all of them exist for Linux, Windows, FreeBSD, and most l ...@@ -59,8 +62,10 @@ Apart from pygraphviz, all of them exist for Linux, Windows, FreeBSD, and most l
On Debian, Ubuntu, and probably other distributions: On Debian, Ubuntu, and probably other distributions:
```bash ```bash
$ sudo apt-get install python-pyside pyside-tools graphviz pip gnat mono-runtime libmono-system-runtime4.0-cil libmono-i18n-west2.0-cil libmono-posix2.0-cil libmono-security2.0-cil $ sudo apt-get install python-pyside pyside-tools graphviz python-pip gnat libmono-system-runtime4.0-cil \
libmono-system-runtime-serialization4.0-cil libmono-corlib4.0-cil libmono-system-runtime-serialization-formatters-soap4.0-cil libmono-system-web4.0-cil \
libmono-system-xml4.0-cil libmono-system4.0-cil mono-runtime libmono-system-numerics4.0-cil \
libmono-system-data-linq4.0-cil libmono-corlib2.0-cil libmono-system2.0-cil
$ sudo pip install --upgrade graphviz enum34 singledispatch $ sudo pip install --upgrade graphviz enum34 singledispatch
$ sudo pip install antlr_python_runtime --allow-external antlr_python_runtime --allow-unverified antlr_python_runtime $ sudo pip install antlr_python_runtime --allow-external antlr_python_runtime --allow-unverified antlr_python_runtime
``` ```
...@@ -69,9 +74,9 @@ To install the ASN.1 compiler: ...@@ -69,9 +74,9 @@ To install the ASN.1 compiler:
```bash ```bash
$ cd /opt $ cd /opt
$ sudo wget http://www.semantix.gr/asn1scc/asn1Comp.tar.gz $ sudo wget http://download.tuxfamily.org/taste/ASN1SCC/ASN1SCC-latest.tgz
$ sudo tar zxvf asn1Comp.tar.gz $ sudo tar zxvf asn1Comp.tar.gz
$ echo 'export PATH=$PATH:/opt/asn1Comp/bin' >> ~/.bashrc $ echo 'export PATH=$PATH:/opt/<path to latest ASN1SCC>/bin' >> ~/.bashrc
``` ```
Check that it works: Check that it works:
...@@ -80,7 +85,7 @@ Check that it works: ...@@ -80,7 +85,7 @@ Check that it works:
$ asn1.exe $ asn1.exe
``` ```
To install llvmpy and LLVM follow the instructions [here](http://www.llvmpy.org/llvmpy-doc/0.12.7/doc/getting_started.html#installation) Optionally, to install llvmpy and LLVM follow the instructions [here](http://www.llvmpy.org/llvmpy-doc/0.12.7/doc/getting_started.html#installation)
OpenGEODE installation OpenGEODE installation
---------------------- ----------------------
...@@ -142,6 +147,13 @@ The fonts are the fonts from Ubuntu, check licence in file FONT-LICENSE.TXT ...@@ -142,6 +147,13 @@ The fonts are the fonts from Ubuntu, check licence in file FONT-LICENSE.TXT
Changelog Changelog
========= =========
1.0RC (10/2014)
- Release candidate Version 1
- Allow standalone systems (made of one process)
- Major refactoring of parser and Ada backend
- Many bugfixes and improvements
- First version of LLVM backend
0.994 (07/2014) 0.994 (07/2014)
- Maintenance release, minor fixes - Maintenance release, minor fixes
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
   
# Resource object code # Resource object code
# #
# Created: Wed Oct 15 20:15:20 2014 # Created: Sun Oct 26 11:44:05 2014
# by: The Resource Compiler for PySide (Qt v4.8.6) # by: The Resource Compiler for PySide (Qt v4.8.6)
# #
# WARNING! All changes made in this file will be lost! # WARNING! All changes made in this file will be lost!
...@@ -100,7 +100,7 @@ except ImportError: ...@@ -100,7 +100,7 @@ except ImportError:
print 'LLVM is not available' print 'LLVM is not available'
__all__ = ['opengeode'] __all__ = ['opengeode']
__version__ = '0.994' __version__ = '1.0RC'
if hasattr(sys, 'frozen'): if hasattr(sys, 'frozen'):
# Detect if we are running on Windows (py2exe-generated) # Detect if we are running on Windows (py2exe-generated)
......
# $ANTLR 3.1.3 Mar 17, 2009 19:23:44 sdl92.g 2014-10-24 10:10:52 # $ANTLR 3.1.3 Mar 17, 2009 19:23:44 sdl92.g 2014-10-26 11:44:07
import sys import sys
from antlr3 import * from antlr3 import *
......
# $ANTLR 3.1.3 Mar 17, 2009 19:23:44 sdl92.g 2014-10-24 10:10:50 # $ANTLR 3.1.3 Mar 17, 2009 19:23:44 sdl92.g 2014-10-26 11:44:06
   
import sys import sys
from antlr3 import * from antlr3 import *
...@@ -826,7 +826,7 @@ class sdl92Parser(Parser): ...@@ -826,7 +826,7 @@ class sdl92Parser(Parser):
stream_end.add(end10.tree) stream_end.add(end10.tree)
   
# AST Rewrite # AST Rewrite
# elements: SYSTEM, system_name, entity_in_system # elements: entity_in_system, system_name, SYSTEM
# token labels: # token labels:
# rule labels: retval # rule labels: retval
# token list labels: # token list labels:
...@@ -954,7 +954,7 @@ class sdl92Parser(Parser): ...@@ -954,7 +954,7 @@ class sdl92Parser(Parser):
stream_end.add(end14.tree) stream_end.add(end14.tree)
   
# AST Rewrite # AST Rewrite
# elements: USE, package_name, use_asn1, end # elements: USE, end, package_name, use_asn1
# token labels: # token labels:
# rule labels: retval # rule labels: retval
# token list labels: # token list labels:
...@@ -1261,7 +1261,7 @@ class sdl92Parser(Parser): ...@@ -1261,7 +1261,7 @@ class sdl92Parser(Parser):
stream_end.add(end24.tree) stream_end.add(end24.tree)
   
# AST Rewrite # AST Rewrite
# elements: paramnames, signal_id, SIGNAL, input_params # elements: signal_id, input_params, paramnames, SIGNAL
# token labels: # token labels:
# rule labels: retval # rule labels: retval
# token list labels: # token list labels:
...@@ -1415,7 +1415,7 @@ class sdl92Parser(Parser): ...@@ -1415,7 +1415,7 @@ class sdl92Parser(Parser):
stream_end.add(end29.tree) stream_end.add(end29.tree)
   
# AST Rewrite # AST Rewrite
# elements: route, channel_id, CHANNEL # elements: channel_id, CHANNEL, route
# token labels: # token labels:
# rule labels: retval # rule labels: retval
# token list labels: # token list labels:
...@@ -1585,7 +1585,7 @@ class sdl92Parser(Parser): ...@@ -1585,7 +1585,7 @@ class sdl92Parser(Parser):
stream_end.add(end38.tree) stream_end.add(end38.tree)
   
# AST Rewrite # AST Rewrite
# elements: signal_id, source_id, dest_id # elements: signal_id, dest_id, source_id
# token labels: # token labels:
# rule labels: retval # rule labels: retval
# token list labels: # token list labels:
...@@ -1735,7 +1735,7 @@ class sdl92Parser(Parser): ...@@ -1735,7 +1735,7 @@ class sdl92Parser(Parser):
stream_end.add(end44.tree) stream_end.add(end44.tree)
   
# AST Rewrite # AST Rewrite
# elements: entity_in_block, block_id, BLOCK # elements: block_id, entity_in_block, BLOCK
# token labels: # token labels:
# rule labels: retval # rule labels: retval
# token list labels: # token list labels:
...@@ -2020,7 +2020,7 @@ class sdl92Parser(Parser): ...@@ -2020,7 +2020,7 @@ class sdl92Parser(Parser):
cnt12 += 1 cnt12 += 1
   
# AST Rewrite # AST Rewrite
# elements: route_id, SIGNALROUTE, route # elements: route, SIGNALROUTE, route_id
# token labels: # token labels:
# rule labels: retval # rule labels: retval
# token list labels: # token list labels:
...@@ -2145,7 +2145,7 @@ class sdl92Parser(Parser): ...@@ -2145,7 +2145,7 @@ class sdl92Parser(Parser):
stream_end.add(end57.tree) stream_end.add(end57.tree)
   
# AST Rewrite # AST Rewrite
# elements: channel_id, route_id # elements: route_id, channel_id
# token labels: # token labels:
# rule labels: retval # rule labels: retval
# token list labels: # token list labels:
...@@ -2307,7 +2307,7 @@ class sdl92Parser(Parser): ...@@ -2307,7 +2307,7 @@ class sdl92Parser(Parser):
stream_end.add(end62.tree) stream_end.add(end62.tree)
   
# AST Rewrite # AST Rewrite
# elements: number_of_instances, process_id, REFERENCED, PROCESS # elements: number_of_instances, process_id, PROCESS, REFERENCED
# token labels: # token labels:
# rule labels: retval # rule labels: retval
# token list labels: # token list labels:
...@@ -2509,7 +2509,7 @@ class sdl92Parser(Parser): ...@@ -2509,7 +2509,7 @@ class sdl92Parser(Parser):
stream_end.add(end74.tree) stream_end.add(end74.tree)
   
# AST Rewrite # AST Rewrite
# elements: process_id, composite_state, PROCESS, text_area, number_of_instances, cif, processBody, end, procedure # elements: number_of_instances, procedure, process_id, end, composite_state, text_area, cif, PROCESS, processBody
# token labels: # token labels:
# rule labels: retval # rule labels: retval
# token list labels: # token list labels:
...@@ -2840,7 +2840,7 @@ class sdl92Parser(Parser): ...@@ -2840,7 +2840,7 @@ class sdl92Parser(Parser):
stream_end.add(end86.tree) stream_end.add(end86.tree)
   
# AST Rewrite # AST Rewrite
# elements: end, text_area, processBody, cif, fpar, PROCEDURE, procedure, procedure_id, EXTERNAL # elements: processBody, cif, text_area, EXTERNAL, fpar, PROCEDURE, procedure_id, procedure, end
# token labels: # token labels:
# rule labels: retval # rule labels: retval
# token list labels: # token list labels:
...@@ -3177,7 +3177,7 @@ class sdl92Parser(Parser): ...@@ -3177,7 +3177,7 @@ class sdl92Parser(Parser):
stream_sort.add(sort97.tree) stream_sort.add(sort97.tree)
   
# AST Rewrite # AST Rewrite
# elements: IN, variable_id, INOUT, sort # elements: IN, sort, variable_id, INOUT
# token labels: # token labels:
# rule labels: retval # rule labels: retval
# token list labels: # token list labels:
...@@ -3535,7 +3535,7 @@ class sdl92Parser(Parser): ...@@ -3535,7 +3535,7 @@ class sdl92Parser(Parser):
break #loop30 break #loop30
   
# AST Rewrite # AST Rewrite
# elements: syntype_definition, synonym_definition, signal_declaration, newtype_definition, timer_declaration, variable_definition, procedure, fpar, use_clause # elements: use_clause, procedure, variable_definition, syntype_definition, synonym_definition, fpar, signal_declaration, timer_declaration, newtype_definition
# token labels: # token labels:
# rule labels: retval # rule labels: retval
# token list labels: # token list labels:
...@@ -3932,7 +3932,7 @@ class sdl92Parser(Parser): ...@@ -3932,7 +3932,7 @@ class sdl92Parser(Parser):
stream_end.add(end125.tree) stream_end.add(end125.tree)
   
# AST Rewrite # AST Rewrite
# elements: range_condition, parent_sort, SYNTYPE, syntype_name # elements: range_condition, syntype_name, parent_sort, SYNTYPE
# token labels: # token labels:
# rule labels: retval # rule labels: retval
# token list labels: # token list labels:
...@@ -4217,7 +4217,7 @@ class sdl92Parser(Parser): ...@@ -4217,7 +4217,7 @@ class sdl92Parser(Parser):
stream_end.add(end134.tree) stream_end.add(end134.tree)
   
# AST Rewrite # AST Rewrite
# elements: structure_definition, NEWTYPE, type_name, array_definition # elements: NEWTYPE, structure_definition, array_definition, type_name
# token labels: # token labels:
# rule labels: retval # rule labels: retval
# token list labels: # token list labels:
...@@ -4506,7 +4506,7 @@ class sdl92Parser(Parser): ...@@ -4506,7 +4506,7 @@ class sdl92Parser(Parser):
stream_end.add(end144.tree) stream_end.add(end144.tree)
   
# AST Rewrite # AST Rewrite
# elements: STRUCT, field_list # elements: field_list, STRUCT
# token labels: # token labels:
# rule labels: retval # rule labels: retval
# token list labels: # token list labels:
...@@ -5206,7 +5206,7 @@ class sdl92Parser(Parser): ...@@ -5206,7 +5206,7 @@ class sdl92Parser(Parser):
stream_ground_expression.add(ground_expression166.tree) stream_ground_expression.add(ground_expression166.tree)
   
# AST Rewrite # AST Rewrite
# elements: sort, ground_expression, sort # elements: ground_expression, sort, sort
# token labels: # token labels:
# rule labels: retval # rule labels: retval
# token list labels: # token list labels:
...@@ -5360,7 +5360,7 @@ class sdl92Parser(Parser): ...@@ -5360,7 +5360,7 @@ class sdl92Parser(Parser):
   
   
# AST Rewrite # AST Rewrite
# elements: ground_expression, variable_id, sort # elements: sort, variable_id, ground_expression
# token labels: # token labels:
# rule labels: retval # rule labels: retval
# token list labels: # token list labels:
...@@ -5568,7 +5568,7 @@ class sdl92Parser(Parser): ...@@ -5568,7 +5568,7 @@ class sdl92Parser(Parser):
stream_R_PAREN.add(char_literal176) stream_R_PAREN.add(char_literal176)
   
# AST Rewrite # AST Rewrite
# elements: initial_number, maximum_number # elements: maximum_number, initial_number
# token labels: maximum_number, initial_number # token labels: maximum_number, initial_number
# rule labels: retval # rule labels: retval
# token list labels: # token list labels:
...@@ -5845,7 +5845,7 @@ class sdl92Parser(Parser): ...@@ -5845,7 +5845,7 @@ class sdl92Parser(Parser):
   
   
# AST Rewrite # AST Rewrite
# elements: START, cif, transition, end, name, hyperlink # elements: end, transition, hyperlink, name, cif, START
# token labels: # token labels:
# rule labels: retval, name # rule labels: retval, name
# token list labels: # token list labels:
...@@ -6082,7 +6082,7 @@ class sdl92Parser(Parser): ...@@ -6082,7 +6082,7 @@ class sdl92Parser(Parser):
stream_SEMI.add(SEMI193) stream_SEMI.add(SEMI193)
   
# AST Rewrite # AST Rewrite
# elements: transition, cif, hyperlink, connector_name # elements: cif, transition, connector_name, hyperlink
# token labels: # token labels:
# rule labels: retval # rule labels: retval
# token list labels: # token list labels:
...@@ -6306,7 +6306,7 @@ class sdl92Parser(Parser): ...@@ -6306,7 +6306,7 @@ class sdl92Parser(Parser):
stream_end.add(f.tree) stream_end.add(f.tree)
   
# AST Rewrite # AST Rewrite
# elements: e, hyperlink, state_part, STATE, cif, statelist # elements: STATE, hyperlink, statelist, e, cif, state_part
# token labels: # token labels:
# rule labels: retval, e # rule labels: retval, e
# token list labels: # token list labels:
...@@ -6860,7 +6860,7 @@ class sdl92Parser(Parser): ...@@ -6860,7 +6860,7 @@ class sdl92Parser(Parser):
stream_end.add(f.tree) stream_end.add(f.tree)
   
# AST Rewrite # AST Rewrite
# elements: body, connection_points, statename, e # elements: connection_points, e, body, statename
# token labels: # token labels:
# rule labels: body, retval, e # rule labels: body, retval, e
# token list labels: # token list labels:
...@@ -7009,7 +7009,7 @@ class sdl92Parser(Parser): ...@@ -7009,7 +7009,7 @@ class sdl92Parser(Parser):
stream_end.add(end219.tree) stream_end.add(end219.tree)
   
# AST Rewrite # AST Rewrite
# elements: IN, state_entry_exit_points, end # elements: end, state_entry_exit_points, IN
# token labels: # token labels:
# rule labels: retval # rule labels: retval
# token list labels: # token list labels:
...@@ -7066,7 +7066,7 @@ class sdl92Parser(Parser): ...@@ -7066,7 +7066,7 @@ class sdl92Parser(Parser):
stream_end.add(end222.tree) stream_end.add(end222.tree)
   
# AST Rewrite # AST Rewrite
# elements: end, state_entry_exit_points, OUT # elements: state_entry_exit_points, end, OUT
# token labels: # token labels:
# rule labels: retval # rule labels: retval
# token list labels: # token list labels:
...@@ -7660,7 +7660,7 @@ class sdl92Parser(Parser): ...@@ -7660,7 +7660,7 @@ class sdl92Parser(Parser):
   
   
# AST Rewrite # AST Rewrite
# elements: transition, connect_list, cif, CONNECT, end, hyperlink # elements: connect_list, transition, hyperlink, cif, end, CONNECT
# token labels: # token labels:
# rule labels: retval # rule labels: retval
# token list labels: # token list labels:
...@@ -8010,7 +8010,7 @@ class sdl92Parser(Parser): ...@@ -8010,7 +8010,7 @@ class sdl92Parser(Parser):
stream_transition.add(transition255.tree) stream_transition.add(transition255.tree)
   
# AST Rewrite # AST Rewrite
# elements: cif, transition, hyperlink # elements: hyperlink, cif, transition
# token labels: # token labels:
# rule labels: retval # rule labels: retval
# token list labels: # token list labels:
...@@ -8265,7 +8265,7 @@ class sdl92Parser(Parser): ...@@ -8265,7 +8265,7 @@ class sdl92Parser(Parser):
stream_transition.add(transition264.tree) stream_transition.add(transition264.tree)
   
# AST Rewrite # AST Rewrite
# elements: transition, integer_literal_name, expression, PROVIDED # elements: expression, transition, PROVIDED, integer_literal_name
# token labels: integer_literal_name # token labels: integer_literal_name
# rule labels: retval # rule labels: retval
# token list labels: # token list labels:
...@@ -8374,7 +8374,7 @@ class sdl92Parser(Parser): ...@@ -8374,7 +8374,7 @@ class sdl92Parser(Parser):
stream_end.add(end267.tree) stream_end.add(end267.tree)
   
# AST Rewrite # AST Rewrite
# elements: save_list, SAVE # elements: SAVE, save_list
# token labels: # token labels:
# rule labels: retval # rule labels: retval
# token list labels: # token list labels:
...@@ -8881,7 +8881,7 @@ class sdl92Parser(Parser): ...@@ -8881,7 +8881,7 @@ class sdl92Parser(Parser):
   
   
# AST Rewrite # AST Rewrite
# elements: INPUT, transition, inputlist, hyperlink, enabling_condition, end, cif # elements: inputlist, end, transition, hyperlink, cif, INPUT, enabling_condition
# token labels: # token labels:
# rule labels: retval # rule labels: retval
# token list labels: # token list labels:
...@@ -9432,7 +9432,7 @@ class sdl92Parser(Parser): ...@@ -9432,7 +9432,7 @@ class sdl92Parser(Parser):
   
   
# AST Rewrite # AST Rewrite
# elements: action, label, terminator_statement # elements: label, terminator_statement, action
# token labels: # token labels:
# rule labels: retval # rule labels: retval
# token list labels: # token list labels:
...@@ -9836,7 +9836,7 @@ class sdl92Parser(Parser): ...@@ -9836,7 +9836,7 @@ class sdl92Parser(Parser):
stream_end.add(end314.tree) stream_end.add(end314.tree)
   
# AST Rewrite # AST Rewrite
# elements: variable_id, EXPORT # elements: EXPORT, variable_id
# token labels: # token labels:
# rule labels: retval # rule labels: retval
# token list labels: # token list labels:
...@@ -9990,7 +9990,7 @@ class sdl92Parser(Parser): ...@@ -9990,7 +9990,7 @@ class sdl92Parser(Parser):
stream_end.add(end319.tree) stream_end.add(end319.tree)
   
# AST Rewrite # AST Rewrite
# elements: procedure_call_body, end, hyperlink, cif # elements: end, procedure_call_body, cif, hyperlink
# token labels: # token labels:
# rule labels: retval # rule labels: retval
# token list labels: # token list labels:
...@@ -10384,7 +10384,7 @@ class sdl92Parser(Parser): ...@@ -10384,7 +10384,7 @@ class sdl92Parser(Parser):
stream_R_PAREN.add(R_PAREN331) stream_R_PAREN.add(R_PAREN331)
   
# AST Rewrite # AST Rewrite
# elements: expression, timer_id # elements: timer_id, expression
# token labels: # token labels:
# rule labels: retval # rule labels: retval
# token list labels: # token list labels:
...@@ -10781,7 +10781,7 @@ class sdl92Parser(Parser): ...@@ -10781,7 +10781,7 @@ class sdl92Parser(Parser):
stream_end.add(f.tree) stream_end.add(f.tree)
   
# AST Rewrite # AST Rewrite
# elements: alternative_part, ALTERNATIVE, answer_part # elements: alternative_part, answer_part, ALTERNATIVE
# token labels: # token labels:
# rule labels: retval # rule labels: retval
# token list labels: # token list labels:
...@@ -11274,7 +11274,7 @@ class sdl92Parser(Parser): ...@@ -11274,7 +11274,7 @@ class sdl92Parser(Parser):
stream_end.add(f.tree) stream_end.add(f.tree)
   
# AST Rewrite # AST Rewrite
# elements: DECISION, answer_part, hyperlink, alternative_part, e, question, cif # elements: cif, question, alternative_part, answer_part, DECISION, e, hyperlink
# token labels: # token labels:
# rule labels: retval, e # rule labels: retval, e
# token list labels: # token list labels:
...@@ -11477,7 +11477,7 @@ class sdl92Parser(Parser): ...@@ -11477,7 +11477,7 @@ class sdl92Parser(Parser):
   
   
# AST Rewrite # AST Rewrite
# elements: transition, cif, answer, hyperlink # elements: cif, hyperlink, transition, answer
# token labels: # token labels:
# rule labels: retval # rule labels: retval
# token list labels: # token list labels:
...@@ -11750,7 +11750,7 @@ class sdl92Parser(Parser): ...@@ -11750,7 +11750,7 @@ class sdl92Parser(Parser):
   
   
# AST Rewrite # AST Rewrite
# elements: cif, ELSE, transition, hyperlink # elements: hyperlink, cif, transition, ELSE
# token labels: # token labels:
# rule labels: retval # rule labels: retval
# token list labels: # token list labels:
...@@ -12140,7 +12140,7 @@ class sdl92Parser(Parser): ...@@ -12140,7 +12140,7 @@ class sdl92Parser(Parser):
stream_expression.add(b.tree) stream_expression.add(b.tree)
   
# AST Rewrite # AST Rewrite
# elements: a, b # elements: b, a
# token labels: # token labels:
# rule labels: retval, b, a # rule labels: retval, b, a
# token list labels: # token list labels:
...@@ -12389,7 +12389,7 @@ class sdl92Parser(Parser): ...@@ -12389,7 +12389,7 @@ class sdl92Parser(Parser):
   
   
# AST Rewrite # AST Rewrite