Changeset 374 for asp3_tinet_ecnl_rx


Ignore:
Timestamp:
Apr 5, 2019, 9:26:53 PM (4 years ago)
Author:
coas-nagasima
Message:

mbed関連を更新
シリアルドライバをmbedのHALを使うよう変更
ファイルディスクリプタの処理を更新

Location:
asp3_tinet_ecnl_rx/trunk
Files:
104 added
5 deleted
175 edited
4 moved

Legend:

Unmodified
Added
Removed
  • asp3_tinet_ecnl_rx/trunk/app1_usb_watt_meter/Debug/Makefile

    r373 r374  
    158158
    159159#
     160#  mbedサービスの定義
     161#
     162
     163include $(SRCDIR)/mbed/Makefile.mbed
     164
     165#
    160166#  共通コンパイルオプションの定義
    161167#
     
    193199APPL_COBJS := $(APPL_COBJS) ping.o ping6.o resolver.o dhcp4_cli.o netapp_subr.o ntp_cli.o net_misc.o
    194200APPLDIRS := $(APPLDIRS) ../../ntshell/tlsf ../../ntshell/fatfs ../../ntshell/ntshell ../../ntshell/ntshell/core ../../ntshell/ntshell/util ../../ntshell/src
    195 APPL_COBJS := $(APPL_COBJS) mbed_api.o netcmd.o fdtable.o io_stub.o socket_stub.o ffarch.o diskio.o ff.o mmc_rspi.o ccsbcs.o ntshell.o text_editor.o text_history.o usrcmd.o vtrecv.o vtsend.o ntlibc.o ntstdio.o ntopt.o syscall.o tlsf.o
     201APPL_COBJS := $(APPL_COBJS) netcmd.o fdtable.o io_stub.o socket_stub.o ffarch.o diskio.o ff.o mmc_rspi.o ccsbcs.o ntshell.o text_editor.o text_history.o usrcmd.o vtrecv.o vtsend.o ntlibc.o ntstdio.o ntopt.o syscall.o tlsf.o
    196202
    197203#
  • asp3_tinet_ecnl_rx/trunk/app1_usb_watt_meter/DebugCitrus/Makefile

    r373 r374  
    158158
    159159#
     160#  mbedサービスの定義
     161#
     162
     163include $(SRCDIR)/mbed/Makefile.mbed
     164
     165#
    160166#  共通コンパイルオプションの定義
    161167#
     
    193199APPL_COBJS := $(APPL_COBJS) ping.o ping6.o resolver.o dhcp4_cli.o netapp_subr.o ntp_cli.o net_misc.o
    194200APPLDIRS := $(APPLDIRS) ../../ntshell/tlsf ../../ntshell/fatfs ../../ntshell/ntshell ../../ntshell/ntshell/core ../../ntshell/ntshell/util ../../ntshell/src
    195 APPL_COBJS := $(APPL_COBJS) mbed_api.o netcmd.o fdtable.o io_stub.o socket_stub.o ffarch.o diskio.o ff.o mmc_rspi.o ccsbcs.o ntshell.o text_editor.o text_history.o usrcmd.o vtrecv.o vtsend.o ntlibc.o ntstdio.o ntopt.o syscall.o tlsf.o
     201APPL_COBJS := $(APPL_COBJS) netcmd.o fdtable.o io_stub.o socket_stub.o ffarch.o diskio.o ff.o mmc_rspi.o ccsbcs.o ntshell.o text_editor.o text_history.o usrcmd.o vtrecv.o vtsend.o ntlibc.o ntstdio.o ntopt.o syscall.o tlsf.o
    196202
    197203#
  • asp3_tinet_ecnl_rx/trunk/app1_usb_watt_meter/DebugEther/Makefile

    r373 r374  
    158158
    159159#
     160#  mbedサービスの定義
     161#
     162
     163include $(SRCDIR)/mbed/Makefile.mbed
     164
     165#
    160166#  共通コンパイルオプションの定義
    161167#
     
    193199APPL_COBJS := $(APPL_COBJS) ping.o ping6.o resolver.o dhcp4_cli.o netapp_subr.o ntp_cli.o net_misc.o
    194200APPLDIRS := $(APPLDIRS) ../../ntshell/tlsf ../../ntshell/fatfs ../../ntshell/ntshell ../../ntshell/ntshell/core ../../ntshell/ntshell/util ../../ntshell/src
    195 APPL_COBJS := $(APPL_COBJS) mbed_api.o netcmd.o fdtable.o io_stub.o socket_stub.o ffarch.o diskio.o ff.o mmc_rspi.o ccsbcs.o ntshell.o text_editor.o text_history.o usrcmd.o vtrecv.o vtsend.o ntlibc.o ntstdio.o ntopt.o syscall.o tlsf.o
     201APPL_COBJS := $(APPL_COBJS) netcmd.o fdtable.o io_stub.o socket_stub.o ffarch.o diskio.o ff.o mmc_rspi.o ccsbcs.o ntshell.o text_editor.o text_history.o usrcmd.o vtrecv.o vtsend.o ntlibc.o ntstdio.o ntopt.o syscall.o tlsf.o
    196202
    197203#
  • asp3_tinet_ecnl_rx/trunk/app1_usb_watt_meter/src/client.c

    r371 r374  
    3333 *  の責任を負わない.
    3434 *
    35  *  @(#) $Id: client.c 1729 2019-01-09 14:44:36Z coas-nagasima $
     35 *  @(#) $Id$
    3636 */
    3737#include <lib/curl_config.h>
     
    4747#include "kernel_cfg.h"
    4848#include "ff.h"
    49 #include "util/ntstdio.h"
     49#include <stdio.h>
    5050#include "client.h"
    5151#include "jsonsl.h"
  • asp3_tinet_ecnl_rx/trunk/app1_usb_watt_meter/src/client.h

    r371 r374  
    3333 *  の責任を負わない.
    3434 *
    35  *  @(#) $Id: client.h 1784 2019-02-06 01:11:25Z coas-nagasima $
     35 *  @(#) $Id$
    3636 */
    3737
  • asp3_tinet_ecnl_rx/trunk/app1_usb_watt_meter/src/main.c

    r371 r374  
    6868#include "core/ntshell.h"
    6969#include "core/ntlibc.h"
    70 #include "util/ntstdio.h"
     70#include <stdio.h>
    7171#include "usrcmd.h"
    7272#include "util/ntopt.h"
    7373#include "socket_stub.h"
    74 #include "mbed_api.h"
     74#include "gpio_api.h"
    7575#include "usb_hbth.h"
    7676#include "ntshell_main.h"
     
    188188{
    189189        FILINFO fno;
    190 #if _USE_LFN
    191         char lfn[_MAX_LFN + 1];
     190#if FF_USE_LFN
     191        char lfn[FF_MAX_LFN + 1];
    192192        fno.lfname = lfn;
    193         fno.lfsize = _MAX_LFN + 1;
     193        fno.lfsize = FF_MAX_LFN + 1;
    194194#endif
    195195        ER ret;
    196196
    197 #ifdef TOPPERS_OMIT_TECS
    198         serial_opn_por(SIO_PORTID);
    199 #endif
    200         serial_ctl_por(SIO_PORTID, IOCTL_FCSND | IOCTL_FCRCV);
    201 
    202197        //wolfSSL_Debugging_ON();
    203198
    204         ntshell_task_init(uart_read, uart_write, &main_obj);
     199        ntshell_task_init(SIO_PORTID);
    205200
    206201        main_obj.timer = TMO_FEVR;
  • asp3_tinet_ecnl_rx/trunk/app2_light/Debug/Makefile

    r364 r374  
    155155
    156156#
     157#  mbedサービスの定義
     158#
     159
     160include $(SRCDIR)/mbed/Makefile.mbed
     161
     162#
    157163#  共通コンパイルオプションの定義
    158164#
     
    184190APPL_COBJS := $(APPL_COBJS) ping.o ping6.o resolver.o dhcp4_cli.o netapp_subr.o ntp_cli.o net_misc.o
    185191APPLDIRS := $(APPLDIRS) ../../ntshell/tlsf ../../ntshell/fatfs ../../ntshell/ntshell ../../ntshell/ntshell/core ../../ntshell/ntshell/util ../../ntshell/src
    186 APPL_COBJS := $(APPL_COBJS) mbed_api.o netcmd.o fdtable.o io_stub.o socket_stub.o ffarch.o diskio.o ff.o mmc_rspi.o ccsbcs.o ntshell.o text_editor.o text_history.o usrcmd.o vtrecv.o vtsend.o ntlibc.o ntstdio.o ntopt.o syscall.o tlsf.o
     192APPL_COBJS := $(APPL_COBJS) netcmd.o fdtable.o io_stub.o socket_stub.o ffarch.o diskio.o ff.o mmc_rspi.o ccsbcs.o ntshell.o text_editor.o text_history.o usrcmd.o vtrecv.o vtsend.o ntlibc.o ntstdio.o ntopt.o syscall.o tlsf.o
    187193
    188194#
  • asp3_tinet_ecnl_rx/trunk/app2_light/DebugCitrus/Makefile

    r364 r374  
    155155
    156156#
     157#  mbedサービスの定義
     158#
     159
     160include $(SRCDIR)/mbed/Makefile.mbed
     161
     162#
    157163#  共通コンパイルオプションの定義
    158164#
     
    184190APPL_COBJS := $(APPL_COBJS) ping.o ping6.o resolver.o dhcp4_cli.o netapp_subr.o ntp_cli.o net_misc.o
    185191APPLDIRS := $(APPLDIRS) ../../ntshell/tlsf ../../ntshell/fatfs ../../ntshell/ntshell ../../ntshell/ntshell/core ../../ntshell/ntshell/util ../../ntshell/src
    186 APPL_COBJS := $(APPL_COBJS) mbed_api.o netcmd.o fdtable.o io_stub.o socket_stub.o ffarch.o diskio.o ff.o mmc_rspi.o ccsbcs.o ntshell.o text_editor.o text_history.o usrcmd.o vtrecv.o vtsend.o ntlibc.o ntstdio.o ntopt.o syscall.o tlsf.o
     192APPL_COBJS := $(APPL_COBJS) netcmd.o fdtable.o io_stub.o socket_stub.o ffarch.o diskio.o ff.o mmc_rspi.o ccsbcs.o ntshell.o text_editor.o text_history.o usrcmd.o vtrecv.o vtsend.o ntlibc.o ntstdio.o ntopt.o syscall.o tlsf.o
    187193
    188194#
  • asp3_tinet_ecnl_rx/trunk/app2_light/DebugEther/Makefile

    r364 r374  
    153153
    154154#
     155#  mbedサービスの定義
     156#
     157
     158include $(SRCDIR)/mbed/Makefile.mbed
     159
     160#
    155161#  共通コンパイルオプションの定義
    156162#
     
    182188APPL_COBJS := $(APPL_COBJS) ping.o ping6.o resolver.o dhcp4_cli.o netapp_subr.o ntp_cli.o net_misc.o
    183189APPLDIRS := $(APPLDIRS) ../../ntshell/tlsf ../../ntshell/fatfs ../../ntshell/ntshell ../../ntshell/ntshell/core ../../ntshell/ntshell/util ../../ntshell/src
    184 APPL_COBJS := $(APPL_COBJS) mbed_api.o netcmd.o fdtable.o io_stub.o socket_stub.o ffarch.o diskio.o ff.o mmc_rspi.o ccsbcs.o ntshell.o text_editor.o text_history.o usrcmd.o vtrecv.o vtsend.o ntlibc.o ntstdio.o ntopt.o syscall.o tlsf.o
     190APPL_COBJS := $(APPL_COBJS) netcmd.o fdtable.o io_stub.o socket_stub.o ffarch.o diskio.o ff.o mmc_rspi.o ccsbcs.o ntshell.o text_editor.o text_history.o usrcmd.o vtrecv.o vtsend.o ntlibc.o ntstdio.o ntopt.o syscall.o tlsf.o
    185191
    186192#
  • asp3_tinet_ecnl_rx/trunk/app2_light/src/main.c

    r364 r374  
    6767#include "core/ntshell.h"
    6868#include "core/ntlibc.h"
    69 #include "util/ntstdio.h"
     69#include <stdio.h>
    7070#include "usrcmd.h"
    7171#include "util/ntopt.h"
    7272#include "socket_stub.h"
    73 #include "mbed_api.h"
     73#include "gpio_api.h"
    7474#include "usb_hbth.h"
    7575#include "ntshell_main.h"
     
    183183{
    184184        FILINFO fno;
    185 #if _USE_LFN
    186         char lfn[_MAX_LFN + 1];
     185#if FF_USE_LFN
     186        char lfn[FF_MAX_LFN + 1];
    187187        fno.lfname = lfn;
    188         fno.lfsize = _MAX_LFN + 1;
     188        fno.lfsize = FF_MAX_LFN + 1;
    189189#endif
    190190        ER ret;
    191191
    192 #ifdef TOPPERS_OMIT_TECS
    193         serial_opn_por(SIO_PORTID);
    194 #endif
    195         serial_ctl_por(SIO_PORTID, IOCTL_FCSND | IOCTL_FCRCV);
    196 
    197         ntshell_task_init(uart_read, uart_write, &main_obj);
     192        ntshell_task_init(SIO_PORTID);
    198193
    199194        main_obj.timer = TMO_FEVR;
  • asp3_tinet_ecnl_rx/trunk/app3_human_detec/Debug/Makefile

    r364 r374  
    155155
    156156#
     157#  mbedサービスの定義
     158#
     159
     160include $(SRCDIR)/mbed/Makefile.mbed
     161
     162#
    157163#  共通コンパイルオプションの定義
    158164#
     
    184190APPL_COBJS := $(APPL_COBJS) ping.o ping6.o resolver.o dhcp4_cli.o netapp_subr.o ntp_cli.o net_misc.o
    185191APPLDIRS := $(APPLDIRS) ../../ntshell/tlsf ../../ntshell/fatfs ../../ntshell/ntshell ../../ntshell/ntshell/core ../../ntshell/ntshell/util ../../ntshell/src
    186 APPL_COBJS := $(APPL_COBJS) mbed_api.o netcmd.o fdtable.o io_stub.o socket_stub.o ffarch.o diskio.o ff.o mmc_rspi.o ccsbcs.o ntshell.o text_editor.o text_history.o usrcmd.o vtrecv.o vtsend.o ntlibc.o ntstdio.o ntopt.o syscall.o tlsf.o
     192APPL_COBJS := $(APPL_COBJS) netcmd.o fdtable.o io_stub.o socket_stub.o ffarch.o diskio.o ff.o mmc_rspi.o ccsbcs.o ntshell.o text_editor.o text_history.o usrcmd.o vtrecv.o vtsend.o ntlibc.o ntstdio.o ntopt.o syscall.o tlsf.o
    187193
    188194#
  • asp3_tinet_ecnl_rx/trunk/app3_human_detec/DebugCitrus/Makefile

    r364 r374  
    155155
    156156#
     157#  mbedサービスの定義
     158#
     159
     160include $(SRCDIR)/mbed/Makefile.mbed
     161
     162#
    157163#  共通コンパイルオプションの定義
    158164#
     
    184190APPL_COBJS := $(APPL_COBJS) ping.o ping6.o resolver.o dhcp4_cli.o netapp_subr.o ntp_cli.o net_misc.o
    185191APPLDIRS := $(APPLDIRS) ../../ntshell/tlsf ../../ntshell/fatfs ../../ntshell/ntshell ../../ntshell/ntshell/core ../../ntshell/ntshell/util ../../ntshell/src
    186 APPL_COBJS := $(APPL_COBJS) mbed_api.o netcmd.o fdtable.o io_stub.o socket_stub.o ffarch.o diskio.o ff.o mmc_rspi.o ccsbcs.o ntshell.o text_editor.o text_history.o usrcmd.o vtrecv.o vtsend.o ntlibc.o ntstdio.o ntopt.o syscall.o tlsf.o
     192APPL_COBJS := $(APPL_COBJS) netcmd.o fdtable.o io_stub.o socket_stub.o ffarch.o diskio.o ff.o mmc_rspi.o ccsbcs.o ntshell.o text_editor.o text_history.o usrcmd.o vtrecv.o vtsend.o ntlibc.o ntstdio.o ntopt.o syscall.o tlsf.o
    187193
    188194#
  • asp3_tinet_ecnl_rx/trunk/app3_human_detec/DebugEther/Makefile

    r364 r374  
    153153
    154154#
     155#  mbedサービスの定義
     156#
     157
     158include $(SRCDIR)/mbed/Makefile.mbed
     159
     160#
    155161#  共通コンパイルオプションの定義
    156162#
     
    182188APPL_COBJS := $(APPL_COBJS) ping.o ping6.o resolver.o dhcp4_cli.o netapp_subr.o ntp_cli.o net_misc.o
    183189APPLDIRS := $(APPLDIRS) ../../ntshell/tlsf ../../ntshell/fatfs ../../ntshell/ntshell ../../ntshell/ntshell/core ../../ntshell/ntshell/util ../../ntshell/src
    184 APPL_COBJS := $(APPL_COBJS) mbed_api.o netcmd.o fdtable.o io_stub.o socket_stub.o ffarch.o diskio.o ff.o mmc_rspi.o ccsbcs.o ntshell.o text_editor.o text_history.o usrcmd.o vtrecv.o vtsend.o ntlibc.o ntstdio.o ntopt.o syscall.o tlsf.o
     190APPL_COBJS := $(APPL_COBJS) netcmd.o fdtable.o io_stub.o socket_stub.o ffarch.o diskio.o ff.o mmc_rspi.o ccsbcs.o ntshell.o text_editor.o text_history.o usrcmd.o vtrecv.o vtsend.o ntlibc.o ntstdio.o ntopt.o syscall.o tlsf.o
    185191
    186192#
  • asp3_tinet_ecnl_rx/trunk/app3_human_detec/src/main.c

    r364 r374  
    6767#include "core/ntshell.h"
    6868#include "core/ntlibc.h"
    69 #include "util/ntstdio.h"
     69#include <stdio.h>
    7070#include "usrcmd.h"
    7171#include "util/ntopt.h"
    7272#include "socket_stub.h"
    73 #include "mbed_api.h"
     73#include "gpio_api.h"
    7474#include "usb_hbth.h"
    7575#include "ntshell_main.h"
     
    183183{
    184184        FILINFO fno;
    185 #if _USE_LFN
    186         char lfn[_MAX_LFN + 1];
     185#if FF_USE_LFN
     186        char lfn[FF_MAX_LFN + 1];
    187187        fno.lfname = lfn;
    188         fno.lfsize = _MAX_LFN + 1;
     188        fno.lfsize = FF_MAX_LFN + 1;
    189189#endif
    190190        ER ret;
    191191
    192 #ifdef TOPPERS_OMIT_TECS
    193         serial_opn_por(SIO_PORTID);
    194 #endif
    195         serial_ctl_por(SIO_PORTID, IOCTL_FCSND | IOCTL_FCRCV);
    196 
    197         ntshell_task_init(uart_read, uart_write, &main_obj);
     192        ntshell_task_init(SIO_PORTID);
    198193
    199194        main_obj.timer = TMO_FEVR;
  • asp3_tinet_ecnl_rx/trunk/app4_aircon/Debug/Makefile

    r364 r374  
    155155
    156156#
     157#  mbedサービスの定義
     158#
     159
     160include $(SRCDIR)/mbed/Makefile.mbed
     161
     162#
    157163#  gdicサービスの定義
    158164#
     
    190196APPL_COBJS := $(APPL_COBJS) ping.o ping6.o resolver.o dhcp4_cli.o netapp_subr.o ntp_cli.o net_misc.o
    191197APPLDIRS := $(APPLDIRS) ../../ntshell/tlsf ../../ntshell/fatfs ../../ntshell/ntshell ../../ntshell/ntshell/core ../../ntshell/ntshell/util ../../ntshell/src
    192 APPL_COBJS := $(APPL_COBJS) mbed_api.o netcmd.o fdtable.o io_stub.o socket_stub.o ffarch.o diskio.o ff.o mmc_rspi.o ccsbcs.o ntshell.o text_editor.o text_history.o usrcmd.o vtrecv.o vtsend.o ntlibc.o ntstdio.o ntopt.o syscall.o tlsf.o
     198APPL_COBJS := $(APPL_COBJS) netcmd.o fdtable.o io_stub.o socket_stub.o ffarch.o diskio.o ff.o mmc_rspi.o ccsbcs.o ntshell.o text_editor.o text_history.o usrcmd.o vtrecv.o vtsend.o ntlibc.o ntstdio.o ntopt.o syscall.o tlsf.o
    193199APPLDIRS := $(APPLDIRS) ../../ntshell/lcd
    194200APPL_COBJS := $(APPL_COBJS) draw_font.o shnm12_font.o
  • asp3_tinet_ecnl_rx/trunk/app4_aircon/DebugCitrus/Makefile

    r364 r374  
    155155
    156156#
     157#  mbedサービスの定義
     158#
     159
     160include $(SRCDIR)/mbed/Makefile.mbed
     161
     162#
    157163#  gdicサービスの定義
    158164#
     
    190196APPL_COBJS := $(APPL_COBJS) ping.o ping6.o resolver.o dhcp4_cli.o netapp_subr.o ntp_cli.o net_misc.o
    191197APPLDIRS := $(APPLDIRS) ../../ntshell/tlsf ../../ntshell/fatfs ../../ntshell/ntshell ../../ntshell/ntshell/core ../../ntshell/ntshell/util ../../ntshell/src
    192 APPL_COBJS := $(APPL_COBJS) mbed_api.o netcmd.o fdtable.o io_stub.o socket_stub.o ffarch.o diskio.o ff.o mmc_rspi.o ccsbcs.o ntshell.o text_editor.o text_history.o usrcmd.o vtrecv.o vtsend.o ntlibc.o ntstdio.o ntopt.o syscall.o tlsf.o
     198APPL_COBJS := $(APPL_COBJS) netcmd.o fdtable.o io_stub.o socket_stub.o ffarch.o diskio.o ff.o mmc_rspi.o ccsbcs.o ntshell.o text_editor.o text_history.o usrcmd.o vtrecv.o vtsend.o ntlibc.o ntstdio.o ntopt.o syscall.o tlsf.o
    193199APPLDIRS := $(APPLDIRS) ../../ntshell/lcd
    194200APPL_COBJS := $(APPL_COBJS) draw_font.o shnm12_font.o
  • asp3_tinet_ecnl_rx/trunk/app4_aircon/DebugEther/Makefile

    r364 r374  
    153153
    154154#
     155#  mbedサービスの定義
     156#
     157
     158include $(SRCDIR)/mbed/Makefile.mbed
     159
     160#
    155161#  gdicサービスの定義
    156162#
     
    188194APPL_COBJS := $(APPL_COBJS) ping.o ping6.o resolver.o dhcp4_cli.o netapp_subr.o ntp_cli.o net_misc.o
    189195APPLDIRS := $(APPLDIRS) ../../ntshell/tlsf ../../ntshell/fatfs ../../ntshell/ntshell ../../ntshell/ntshell/core ../../ntshell/ntshell/util ../../ntshell/src
    190 APPL_COBJS := $(APPL_COBJS) mbed_api.o netcmd.o fdtable.o io_stub.o socket_stub.o ffarch.o diskio.o ff.o mmc_rspi.o ccsbcs.o ntshell.o text_editor.o text_history.o usrcmd.o vtrecv.o vtsend.o ntlibc.o ntstdio.o ntopt.o syscall.o tlsf.o
     196APPL_COBJS := $(APPL_COBJS) netcmd.o fdtable.o io_stub.o socket_stub.o ffarch.o diskio.o ff.o mmc_rspi.o ccsbcs.o ntshell.o text_editor.o text_history.o usrcmd.o vtrecv.o vtsend.o ntlibc.o ntstdio.o ntopt.o syscall.o tlsf.o
    191197APPLDIRS := $(APPLDIRS) ../../ntshell/lcd
    192198APPL_COBJS := $(APPL_COBJS) draw_font.o shnm12_font.o
  • asp3_tinet_ecnl_rx/trunk/app4_aircon/src/main.c

    r364 r374  
    6767#include "core/ntshell.h"
    6868#include "core/ntlibc.h"
    69 #include "util/ntstdio.h"
     69#include <stdio.h>
    7070#include "usrcmd.h"
    7171#include "util/ntopt.h"
    7272#include "socket_stub.h"
    73 #include "mbed_api.h"
     73#include "gpio_api.h"
    7474#include "usb_hbth.h"
    7575#include "ntshell_main.h"
     
    183183{
    184184        FILINFO fno;
    185 #if _USE_LFN
    186         char lfn[_MAX_LFN + 1];
     185#if FF_USE_LFN
     186        char lfn[FF_MAX_LFN + 1];
    187187        fno.lfname = lfn;
    188         fno.lfsize = _MAX_LFN + 1;
     188        fno.lfsize = FF_MAX_LFN + 1;
    189189#endif
    190190        ER ret;
    191191
    192 #ifdef TOPPERS_OMIT_TECS
    193         serial_opn_por(SIO_PORTID);
    194 #endif
    195         serial_ctl_por(SIO_PORTID, IOCTL_FCSND | IOCTL_FCRCV);
    196 
    197         ntshell_task_init(uart_read, uart_write, &main_obj);
     192        ntshell_task_init(SIO_PORTID);
    198193
    199194        main_obj.timer = TMO_FEVR;
  • asp3_tinet_ecnl_rx/trunk/app5_temp_sensor/Debug/Makefile

    r364 r374  
    155155
    156156#
     157#  mbedサービスの定義
     158#
     159
     160include $(SRCDIR)/mbed/Makefile.mbed
     161
     162#
    157163#  gdicサービスの定義
    158164#
     
    190196APPL_COBJS := $(APPL_COBJS) ping.o ping6.o resolver.o dhcp4_cli.o netapp_subr.o ntp_cli.o net_misc.o
    191197APPLDIRS := $(APPLDIRS) ../../ntshell/tlsf ../../ntshell/fatfs ../../ntshell/ntshell ../../ntshell/ntshell/core ../../ntshell/ntshell/util ../../ntshell/src
    192 APPL_COBJS := $(APPL_COBJS) mbed_api.o netcmd.o fdtable.o io_stub.o socket_stub.o ffarch.o diskio.o ff.o mmc_rspi.o ccsbcs.o ntshell.o text_editor.o text_history.o usrcmd.o vtrecv.o vtsend.o ntlibc.o ntstdio.o ntopt.o syscall.o tlsf.o
     198APPL_COBJS := $(APPL_COBJS) netcmd.o fdtable.o io_stub.o socket_stub.o ffarch.o diskio.o ff.o mmc_rspi.o ccsbcs.o ntshell.o text_editor.o text_history.o usrcmd.o vtrecv.o vtsend.o ntlibc.o ntstdio.o ntopt.o syscall.o tlsf.o
    193199APPLDIRS := $(APPLDIRS) ../../ntshell/lcd
    194200APPL_COBJS := $(APPL_COBJS) draw_font.o shnm12_font.o
  • asp3_tinet_ecnl_rx/trunk/app5_temp_sensor/DebugCitrus/Makefile

    r364 r374  
    155155
    156156#
     157#  mbedサービスの定義
     158#
     159
     160include $(SRCDIR)/mbed/Makefile.mbed
     161
     162#
    157163#  gdicサービスの定義
    158164#
     
    190196APPL_COBJS := $(APPL_COBJS) ping.o ping6.o resolver.o dhcp4_cli.o netapp_subr.o ntp_cli.o net_misc.o
    191197APPLDIRS := $(APPLDIRS) ../../ntshell/tlsf ../../ntshell/fatfs ../../ntshell/ntshell ../../ntshell/ntshell/core ../../ntshell/ntshell/util ../../ntshell/src
    192 APPL_COBJS := $(APPL_COBJS) mbed_api.o netcmd.o fdtable.o io_stub.o socket_stub.o ffarch.o diskio.o ff.o mmc_rspi.o ccsbcs.o ntshell.o text_editor.o text_history.o usrcmd.o vtrecv.o vtsend.o ntlibc.o ntstdio.o ntopt.o syscall.o tlsf.o
     198APPL_COBJS := $(APPL_COBJS) netcmd.o fdtable.o io_stub.o socket_stub.o ffarch.o diskio.o ff.o mmc_rspi.o ccsbcs.o ntshell.o text_editor.o text_history.o usrcmd.o vtrecv.o vtsend.o ntlibc.o ntstdio.o ntopt.o syscall.o tlsf.o
    193199APPLDIRS := $(APPLDIRS) ../../ntshell/lcd
    194200APPL_COBJS := $(APPL_COBJS) draw_font.o shnm12_font.o
  • asp3_tinet_ecnl_rx/trunk/app5_temp_sensor/DebugEther/Makefile

    r364 r374  
    153153
    154154#
     155#  mbedサービスの定義
     156#
     157
     158include $(SRCDIR)/mbed/Makefile.mbed
     159
     160#
    155161#  gdicサービスの定義
    156162#
     
    188194APPL_COBJS := $(APPL_COBJS) ping.o ping6.o resolver.o dhcp4_cli.o netapp_subr.o ntp_cli.o net_misc.o
    189195APPLDIRS := $(APPLDIRS) ../../ntshell/tlsf ../../ntshell/fatfs ../../ntshell/ntshell ../../ntshell/ntshell/core ../../ntshell/ntshell/util ../../ntshell/src
    190 APPL_COBJS := $(APPL_COBJS) mbed_api.o netcmd.o fdtable.o io_stub.o socket_stub.o ffarch.o diskio.o ff.o mmc_rspi.o ccsbcs.o ntshell.o text_editor.o text_history.o usrcmd.o vtrecv.o vtsend.o ntlibc.o ntstdio.o ntopt.o syscall.o tlsf.o
     196APPL_COBJS := $(APPL_COBJS) netcmd.o fdtable.o io_stub.o socket_stub.o ffarch.o diskio.o ff.o mmc_rspi.o ccsbcs.o ntshell.o text_editor.o text_history.o usrcmd.o vtrecv.o vtsend.o ntlibc.o ntstdio.o ntopt.o syscall.o tlsf.o
    191197APPLDIRS := $(APPLDIRS) ../../ntshell/lcd
    192198APPL_COBJS := $(APPL_COBJS) draw_font.o shnm12_font.o
  • asp3_tinet_ecnl_rx/trunk/app5_temp_sensor/src/main.c

    r364 r374  
    6767#include "core/ntshell.h"
    6868#include "core/ntlibc.h"
    69 #include "util/ntstdio.h"
     69#include <stdio.h>
    7070#include "usrcmd.h"
    7171#include "util/ntopt.h"
    7272#include "socket_stub.h"
    73 #include "mbed_api.h"
     73#include "gpio_api.h"
    7474#include "usb_hbth.h"
    7575#include "ntshell_main.h"
     
    183183{
    184184        FILINFO fno;
    185 #if _USE_LFN
    186         char lfn[_MAX_LFN + 1];
     185#if FF_USE_LFN
     186        char lfn[FF_MAX_LFN + 1];
    187187        fno.lfname = lfn;
    188         fno.lfsize = _MAX_LFN + 1;
     188        fno.lfsize = FF_MAX_LFN + 1;
    189189#endif
    190190        ER ret;
    191191
    192 #ifdef TOPPERS_OMIT_TECS
    193         serial_opn_por(SIO_PORTID);
    194 #endif
    195         serial_ctl_por(SIO_PORTID, IOCTL_FCSND | IOCTL_FCRCV);
    196 
    197         ntshell_task_init(uart_read, uart_write, &main_obj);
     192        ntshell_task_init(SIO_PORTID);
    198193
    199194        main_obj.timer = TMO_FEVR;
  • asp3_tinet_ecnl_rx/trunk/app6_hot_water_pot/Debug/Makefile

    r364 r374  
    155155
    156156#
     157#  mbedサービスの定義
     158#
     159
     160include $(SRCDIR)/mbed/Makefile.mbed
     161
     162#
    157163#  共通コンパイルオプションの定義
    158164#
     
    184190APPL_COBJS := $(APPL_COBJS) ping.o ping6.o resolver.o dhcp4_cli.o netapp_subr.o ntp_cli.o net_misc.o
    185191APPLDIRS := $(APPLDIRS) ../../ntshell/tlsf ../../ntshell/fatfs ../../ntshell/ntshell ../../ntshell/ntshell/core ../../ntshell/ntshell/util ../../ntshell/src
    186 APPL_COBJS := $(APPL_COBJS) mbed_api.o netcmd.o fdtable.o io_stub.o socket_stub.o ffarch.o diskio.o ff.o mmc_rspi.o ccsbcs.o ntshell.o text_editor.o text_history.o usrcmd.o vtrecv.o vtsend.o ntlibc.o ntstdio.o ntopt.o syscall.o tlsf.o
     192APPL_COBJS := $(APPL_COBJS) netcmd.o fdtable.o io_stub.o socket_stub.o ffarch.o diskio.o ff.o mmc_rspi.o ccsbcs.o ntshell.o text_editor.o text_history.o usrcmd.o vtrecv.o vtsend.o ntlibc.o ntstdio.o ntopt.o syscall.o tlsf.o
    187193
    188194#
  • asp3_tinet_ecnl_rx/trunk/app6_hot_water_pot/DebugCitrus/Makefile

    r364 r374  
    155155
    156156#
     157#  mbedサービスの定義
     158#
     159
     160include $(SRCDIR)/mbed/Makefile.mbed
     161
     162#
    157163#  共通コンパイルオプションの定義
    158164#
     
    184190APPL_COBJS := $(APPL_COBJS) ping.o ping6.o resolver.o dhcp4_cli.o netapp_subr.o ntp_cli.o net_misc.o
    185191APPLDIRS := $(APPLDIRS) ../../ntshell/tlsf ../../ntshell/fatfs ../../ntshell/ntshell ../../ntshell/ntshell/core ../../ntshell/ntshell/util ../../ntshell/src
    186 APPL_COBJS := $(APPL_COBJS) mbed_api.o netcmd.o fdtable.o io_stub.o socket_stub.o ffarch.o diskio.o ff.o mmc_rspi.o ccsbcs.o ntshell.o text_editor.o text_history.o usrcmd.o vtrecv.o vtsend.o ntlibc.o ntstdio.o ntopt.o syscall.o tlsf.o
     192APPL_COBJS := $(APPL_COBJS) netcmd.o fdtable.o io_stub.o socket_stub.o ffarch.o diskio.o ff.o mmc_rspi.o ccsbcs.o ntshell.o text_editor.o text_history.o usrcmd.o vtrecv.o vtsend.o ntlibc.o ntstdio.o ntopt.o syscall.o tlsf.o
    187193
    188194#
  • asp3_tinet_ecnl_rx/trunk/app6_hot_water_pot/DebugEther/Makefile

    r364 r374  
    153153
    154154#
     155#  mbedサービスの定義
     156#
     157
     158include $(SRCDIR)/mbed/Makefile.mbed
     159
     160#
    155161#  共通コンパイルオプションの定義
    156162#
     
    182188APPL_COBJS := $(APPL_COBJS) ping.o ping6.o resolver.o dhcp4_cli.o netapp_subr.o ntp_cli.o net_misc.o
    183189APPLDIRS := $(APPLDIRS) ../../ntshell/tlsf ../../ntshell/fatfs ../../ntshell/ntshell ../../ntshell/ntshell/core ../../ntshell/ntshell/util ../../ntshell/src
    184 APPL_COBJS := $(APPL_COBJS) mbed_api.o netcmd.o fdtable.o io_stub.o socket_stub.o ffarch.o diskio.o ff.o mmc_rspi.o ccsbcs.o ntshell.o text_editor.o text_history.o usrcmd.o vtrecv.o vtsend.o ntlibc.o ntstdio.o ntopt.o syscall.o tlsf.o
     190APPL_COBJS := $(APPL_COBJS) netcmd.o fdtable.o io_stub.o socket_stub.o ffarch.o diskio.o ff.o mmc_rspi.o ccsbcs.o ntshell.o text_editor.o text_history.o usrcmd.o vtrecv.o vtsend.o ntlibc.o ntstdio.o ntopt.o syscall.o tlsf.o
    185191
    186192#
  • asp3_tinet_ecnl_rx/trunk/app6_hot_water_pot/src/main.c

    r364 r374  
    6767#include "core/ntshell.h"
    6868#include "core/ntlibc.h"
    69 #include "util/ntstdio.h"
     69#include <stdio.h>
    7070#include "usrcmd.h"
    7171#include "util/ntopt.h"
    7272#include "socket_stub.h"
    73 #include "mbed_api.h"
     73#include "gpio_api.h"
    7474#include "usb_hbth.h"
    7575#include "ntshell_main.h"
     
    183183{
    184184        FILINFO fno;
    185 #if _USE_LFN
    186         char lfn[_MAX_LFN + 1];
     185#if FF_USE_LFN
     186        char lfn[FF_MAX_LFN + 1];
    187187        fno.lfname = lfn;
    188         fno.lfsize = _MAX_LFN + 1;
     188        fno.lfsize = FF_MAX_LFN + 1;
    189189#endif
    190190        ER ret;
    191191
    192 #ifdef TOPPERS_OMIT_TECS
    193         serial_opn_por(SIO_PORTID);
    194 #endif
    195         serial_ctl_por(SIO_PORTID, IOCTL_FCSND | IOCTL_FCRCV);
    196 
    197         ntshell_task_init(uart_read, uart_write, &main_obj);
     192        ntshell_task_init(SIO_PORTID);
    198193
    199194        main_obj.timer = TMO_FEVR;
  • asp3_tinet_ecnl_rx/trunk/app7_buzzer/Debug/Makefile

    r364 r374  
    155155
    156156#
     157#  mbedサービスの定義
     158#
     159
     160include $(SRCDIR)/mbed/Makefile.mbed
     161
     162#
    157163#  共通コンパイルオプションの定義
    158164#
     
    184190APPL_COBJS := $(APPL_COBJS) ping.o ping6.o resolver.o dhcp4_cli.o netapp_subr.o ntp_cli.o net_misc.o
    185191APPLDIRS := $(APPLDIRS) ../../ntshell/tlsf ../../ntshell/fatfs ../../ntshell/ntshell ../../ntshell/ntshell/core ../../ntshell/ntshell/util ../../ntshell/src
    186 APPL_COBJS := $(APPL_COBJS) mbed_api.o netcmd.o fdtable.o io_stub.o socket_stub.o ffarch.o diskio.o ff.o mmc_rspi.o ccsbcs.o ntshell.o text_editor.o text_history.o usrcmd.o vtrecv.o vtsend.o ntlibc.o ntstdio.o ntopt.o syscall.o tlsf.o
     192APPL_COBJS := $(APPL_COBJS) netcmd.o fdtable.o io_stub.o socket_stub.o ffarch.o diskio.o ff.o mmc_rspi.o ccsbcs.o ntshell.o text_editor.o text_history.o usrcmd.o vtrecv.o vtsend.o ntlibc.o ntstdio.o ntopt.o syscall.o tlsf.o
    187193
    188194#
  • asp3_tinet_ecnl_rx/trunk/app7_buzzer/DebugCitrus/Makefile

    r364 r374  
    155155
    156156#
     157#  mbedサービスの定義
     158#
     159
     160include $(SRCDIR)/mbed/Makefile.mbed
     161
     162#
    157163#  共通コンパイルオプションの定義
    158164#
     
    184190APPL_COBJS := $(APPL_COBJS) ping.o ping6.o resolver.o dhcp4_cli.o netapp_subr.o ntp_cli.o net_misc.o
    185191APPLDIRS := $(APPLDIRS) ../../ntshell/tlsf ../../ntshell/fatfs ../../ntshell/ntshell ../../ntshell/ntshell/core ../../ntshell/ntshell/util ../../ntshell/src
    186 APPL_COBJS := $(APPL_COBJS) mbed_api.o netcmd.o fdtable.o io_stub.o socket_stub.o ffarch.o diskio.o ff.o mmc_rspi.o ccsbcs.o ntshell.o text_editor.o text_history.o usrcmd.o vtrecv.o vtsend.o ntlibc.o ntstdio.o ntopt.o syscall.o tlsf.o
     192APPL_COBJS := $(APPL_COBJS) netcmd.o fdtable.o io_stub.o socket_stub.o ffarch.o diskio.o ff.o mmc_rspi.o ccsbcs.o ntshell.o text_editor.o text_history.o usrcmd.o vtrecv.o vtsend.o ntlibc.o ntstdio.o ntopt.o syscall.o tlsf.o
    187193
    188194#
  • asp3_tinet_ecnl_rx/trunk/app7_buzzer/DebugEther/Makefile

    r364 r374  
    153153
    154154#
     155#  mbedサービスの定義
     156#
     157
     158include $(SRCDIR)/mbed/Makefile.mbed
     159
     160#
    155161#  共通コンパイルオプションの定義
    156162#
     
    182188APPL_COBJS := $(APPL_COBJS) ping.o ping6.o resolver.o dhcp4_cli.o netapp_subr.o ntp_cli.o net_misc.o
    183189APPLDIRS := $(APPLDIRS) ../../ntshell/tlsf ../../ntshell/fatfs ../../ntshell/ntshell ../../ntshell/ntshell/core ../../ntshell/ntshell/util ../../ntshell/src
    184 APPL_COBJS := $(APPL_COBJS) mbed_api.o netcmd.o fdtable.o io_stub.o socket_stub.o ffarch.o diskio.o ff.o mmc_rspi.o ccsbcs.o ntshell.o text_editor.o text_history.o usrcmd.o vtrecv.o vtsend.o ntlibc.o ntstdio.o ntopt.o syscall.o tlsf.o
     190APPL_COBJS := $(APPL_COBJS) netcmd.o fdtable.o io_stub.o socket_stub.o ffarch.o diskio.o ff.o mmc_rspi.o ccsbcs.o ntshell.o text_editor.o text_history.o usrcmd.o vtrecv.o vtsend.o ntlibc.o ntstdio.o ntopt.o syscall.o tlsf.o
    185191
    186192#
  • asp3_tinet_ecnl_rx/trunk/app7_buzzer/src/main.c

    r364 r374  
    6767#include "core/ntshell.h"
    6868#include "core/ntlibc.h"
    69 #include "util/ntstdio.h"
     69#include <stdio.h>
    7070#include "usrcmd.h"
    7171#include "util/ntopt.h"
    7272#include "socket_stub.h"
    73 #include "mbed_api.h"
     73#include "gpio_api.h"
    7474#include "usb_hbth.h"
    7575#include "ntshell_main.h"
     
    183183{
    184184        FILINFO fno;
    185 #if _USE_LFN
    186         char lfn[_MAX_LFN + 1];
     185#if FF_USE_LFN
     186        char lfn[FF_MAX_LFN + 1];
    187187        fno.lfname = lfn;
    188         fno.lfsize = _MAX_LFN + 1;
     188        fno.lfsize = FF_MAX_LFN + 1;
    189189#endif
    190190        ER ret;
    191191
    192 #ifdef TOPPERS_OMIT_TECS
    193         serial_opn_por(SIO_PORTID);
    194 #endif
    195         serial_ctl_por(SIO_PORTID, IOCTL_FCSND | IOCTL_FCRCV);
    196 
    197         ntshell_task_init(uart_read, uart_write, &main_obj);
     192        ntshell_task_init(SIO_PORTID);
    198193
    199194        main_obj.timer = TMO_FEVR;
  • asp3_tinet_ecnl_rx/trunk/asp3_dcre/Debug/Makefile

    r364 r374  
    153153
    154154#
     155#  mbedサービスの定義
     156#
     157
     158include $(SRCDIR)/mbed/Makefile.mbed
     159
     160#
    155161#  共通コンパイルオプションの定義
    156162#
  • asp3_tinet_ecnl_rx/trunk/asp3_dcre/DebugCitrus/Makefile

    r364 r374  
    153153
    154154#
     155#  mbedサービスの定義
     156#
     157
     158include $(SRCDIR)/mbed/Makefile.mbed
     159
     160#
    155161#  共通コンパイルオプションの定義
    156162#
  • asp3_tinet_ecnl_rx/trunk/asp3_dcre/arch/rx630_gcc/tSCIF.c

    r337 r374  
    4747#include "tSCIF_tecsgen.h"
    4848#include "scif.h"
     49#include "target_kernel_impl.h"
    4950
    5051/*
  • asp3_tinet_ecnl_rx/trunk/asp3_dcre/cfg/pass1.rb

    r337 r374  
    727727  #
    728728  def self.OutLineNumber(cfgInfo)
    729     @cfg1Out.add("#line #{cfgInfo[:_LINE_]} \"#{cfgInfo[:_FILE_]}\"")
     729    @cfg1Out.add("#line #{cfgInfo[:_LINE_]} \"#{cfgInfo[:_FILE_].gsub('\\', '/')}\"")
    730730  end
    731731
     
    734734  #
    735735  def self.OutClassLineNumber(cfgInfo)
    736     @cfg1Out.add("#line #{cfgInfo[:CLASS_LINE_]} \"#{cfgInfo[:CLASS_FILE_]}\"")
     736    @cfg1Out.add("#line #{cfgInfo[:CLASS_LINE_]} \"#{cfgInfo[:CLASS_FILE_].gsub('\\', '/')}\"")
    737737  end
    738738
  • asp3_tinet_ecnl_rx/trunk/asp3_dcre/gdic/adafruit_ssd1306/adafruit_ssd1306.h

    r364 r374  
    2222#include <stdbool.h>
    2323#include <time.h>
    24 #include "mbed_api.h"
     24#include "gpio_api.h"
     25#include "spi_api.h"
     26#include "i2c_api.h"
    2527#include "gfxfont.h"
    2628
  • asp3_tinet_ecnl_rx/trunk/asp3_dcre/target/gr_citrus_gcc/Makefile.target

    r337 r374  
    1313#  コンパイルオプション
    1414#
    15 INCLUDES := $(INCLUDES) -I$(TARGETDIR) -I$(SRCDIR)/pdic
     15INCLUDES := $(INCLUDES) -I$(TARGETDIR) -I$(SRCDIR)/mbed
    1616
    1717#
     
    2525#  システムサービスに関する定義
    2626#
    27 SYSSVC_DIRS := $(SYSSVC_DIRS)
     27SYSSVC_DIRS := $(SYSSVC_DIRS) $(SRCDIR)/mbed
    2828SYSSVC_COBJS := $(SYSSVC_COBJS)
    2929
  • asp3_tinet_ecnl_rx/trunk/asp3_dcre/target/gr_citrus_gcc/gr_citrus.h

    r337 r374  
    7171 *  ボーレート設定
    7272 */
    73 #define BAUD_19200BPS           UINT_C( 78 )
    74 #define BAUD_38400BPS           UINT_C( 39 )
    75 #define BAUD_57600BPS           UINT_C( 25 )
    76 #define BAUD_115200BPS          UINT_C( 12 )
    77 
    78 #define UART_BAUDRATE           BAUD_115200BPS
     73#define UART_BAUDRATE           115200
    7974
    8075/*
  • asp3_tinet_ecnl_rx/trunk/asp3_dcre/target/gr_citrus_gcc/tSIOPortGRCitrus.cdl

    r337 r374  
    5151 */
    5252import_C("gr_citrus.h");
    53 import_C("rx630.h");
     53import_C("device.h");
    5454
    5555/*
    5656 *  FIFO内蔵シリアルコミュニケーションインタフェース用 簡易SIOドライバ
    5757 */
    58 import("tSCIF.cdl");
     58import("tMbedSerial.cdl");
    5959
    6060/*
     
    7474        call                    sSIOPort        cSIOPort;
    7575        [inline] entry  siSIOCBR        eiSIOCBR;
    76 
    77         /*
    78          *  割込み要求ライン操作のための結合
    79          */
    80         call    sInterruptRequest       cRxInterruptRequest;
    81         call    sInterruptRequest       cTxInterruptRequest;
    8276};
    8377
     
    8680 *  ト)のセルタイプ
    8781 */
    88 [active]
    8982composite tSIOPortGRCitrus {
    9083        /*
     
    9891         */
    9992        attr {
    100                 uintptr_t       baseAddress;                            /* ベースアドレス */
    101                 INTNO           rxInterruptNumber;                      /* 受信割込み番号 */
    102                 INTNO           txInterruptNumber;                      /* 送信割込み番号 */
    103                 PRI                     isrPriority = 1;                        /* ISR優先度 */
    104                 PRI                     interruptPriority = -4;         /* 割込み優先度 */
     93                int32_t tx;                                                             /* 送信Pin */
     94                int32_t rx;                                                             /* 受信Pin */
    10595                uint32_t        baudRate = 115200;                      /* ボーレートの設定値 */
    10696        };
     
    10999         *  SIOドライバ
    110100         */
    111         cell tSCIF SCIF {
    112                 baseAddress = composite.baseAddress;
     101        cell tMbedSerial MbedSerial {
     102                tx          = composite.tx;
     103                rx          = composite.rx;
    113104                baudRate    = composite.baudRate;
    114105                ciSIOCBR    = SIOPortMain.eiSIOCBR;
     
    120111        cell tSIOPortGRCitrusMain SIOPortMain {
    121112                ciSIOCBR            => composite.ciSIOCBR;
    122                 cSIOPort            = SCIF.eSIOPort;
    123                 cRxInterruptRequest = RxInterruptRequest.eInterruptRequest;
    124                 cTxInterruptRequest = TxInterruptRequest.eInterruptRequest;
     113                cSIOPort            = MbedSerial.eSIOPort;
    125114        };
    126115        composite.eSIOPort => SIOPortMain.eSIOPort;
    127 
    128         /*
    129          *  SIOの受信割込みサービスルーチンと割込み要求ライン
    130          */
    131         cell tISR RxISRInstance {
    132                 interruptNumber = composite.rxInterruptNumber;
    133                 isrPriority     = composite.isrPriority;
    134                 ciISRBody       = SCIF.eiRxISR;
    135         };
    136         cell tInterruptRequest RxInterruptRequest {
    137                 interruptNumber   = composite.rxInterruptNumber;
    138                 interruptPriority = composite.interruptPriority;
    139         };
    140 
    141         /*
    142          *  SIOの受信割込みサービスルーチンと割込み要求ライン
    143          */
    144         cell tISR TxISRInstance {
    145                 interruptNumber = composite.txInterruptNumber;
    146                 isrPriority     = composite.isrPriority;
    147                 ciISRBody       = SCIF.eiTxISR;
    148         };
    149         cell tInterruptRequest TxInterruptRequest {
    150                 interruptNumber   = composite.txInterruptNumber;
    151                 interruptPriority = composite.interruptPriority;
    152         };
    153116};
    154117
     
    158121 *  サンプルプログラムが使うポートが,SIOPortTarget1に固定されているた
    159122 *  め,ポート1とポート3を入れ換えている.具体的には,SIOPortTarget1は
    160  *  SCIFのチャネル2(チャネル番号は0から始まるので,ポート3のこと)に,
    161  *  SIOPortTarget3はSCIFのチャネル0につながっている.
     123 *  MbedSerialのチャネル2(チャネル番号は0から始まるので,ポート3のこと)に,
     124 *  SIOPortTarget3はMbedSerialのチャネル0につながっている.
    162125 */
    163126[prototype]
    164127cell tSIOPortGRCitrus SIOPortTarget1 {
    165128        /* 属性の設定 */
    166         baseAddress       = C_EXP("SCI0_BASE");
    167         rxInterruptNumber = C_EXP("INT_SCI0_RXI");
    168         txInterruptNumber = C_EXP("INT_SCI0_TEI");
     129        tx = C_EXP("P20");              /* PIN_IO0 */
     130        rx = C_EXP("P21");              /* PIN_IO1 */
    169131};
    170132
     
    172134cell tSIOPortGRCitrus SIOPortTarget2 {
    173135        /* 属性の設定 */
    174         baseAddress       = C_EXP("SCI1_BASE");
    175         rxInterruptNumber = C_EXP("INT_SCI1_RXI");
    176         txInterruptNumber = C_EXP("INT_SCI1_TEI");
     136        tx = C_EXP("P50");              /* PIN_IO5 */
     137        rx = C_EXP("P52");              /* PIN_IO6 */
    177138};
    178139
     
    180141cell tSIOPortGRCitrus SIOPortTarget3 {
    181142        /* 属性の設定 */
    182         baseAddress       = C_EXP("SCI2_BASE");
    183         rxInterruptNumber = C_EXP("INT_SCI2_RXI");
    184         txInterruptNumber = C_EXP("INT_SCI2_TEI");
     143        tx = C_EXP("P32");              /* PIN_IO7 */
     144        rx = C_EXP("P33");              /* PIN_IO8 */
    185145};
    186146
     
    188148cell tSIOPortGRCitrus SIOPortTarget4 {
    189149        /* 属性の設定 */
    190         baseAddress       = C_EXP("SCI3_BASE");
    191         rxInterruptNumber = C_EXP("INT_SCI3_RXI");
    192         txInterruptNumber = C_EXP("INT_SCI3_TEI");
     150        tx = C_EXP("PC7");              /* PIN_IO12 */
     151        rx = C_EXP("PC6");              /* PIN_IO11 */
    193152};
    194153
     
    196155cell tSIOPortGRCitrus SIOPortTarget5 {
    197156        /* 属性の設定 */
    198         baseAddress       = C_EXP("SCI4_BASE");
    199         rxInterruptNumber = C_EXP("INT_SCI4_RXI");
    200         txInterruptNumber = C_EXP("INT_SCI4_TEI");
     157        tx = C_EXP("P26");              /* PIN_IO26 */
     158        rx = C_EXP("P30");              /* PIN_IO22 */
    201159};
    202160
     
    204162cell tSIOPortGRCitrus SIOPortTarget6 {
    205163        /* 属性の設定 */
    206         baseAddress       = C_EXP("SCI5_BASE");
    207         rxInterruptNumber = C_EXP("INT_SCI5_RXI");
    208         txInterruptNumber = C_EXP("INT_SCI5_TEI");
     164        tx = C_EXP("PB5");              /* PIN_IO29 */
     165        rx = C_EXP("P25");              /* PIN_IO23 */
    209166};
    210167
     
    212169cell tSIOPortGRCitrus SIOPortTarget7 {
    213170        /* 属性の設定 */
    214         baseAddress       = C_EXP("SCI6_BASE");
    215         rxInterruptNumber = C_EXP("INT_SCI6_RXI");
    216         txInterruptNumber = C_EXP("INT_SCI6_TEI");
     171        tx = C_EXP("PA0");              /* PIN_IO33 */
     172        rx = C_EXP("PC2");              /* PIN_IO4 */
    217173};
    218174
     
    220176cell tSIOPortGRCitrus SIOPortTarget8 {
    221177        /* 属性の設定 */
    222         baseAddress       = NULL;
    223         rxInterruptNumber = NULL;
    224         txInterruptNumber = NULL;
     178        rx = NULL;
     179        tx = NULL;
    225180};
  • asp3_tinet_ecnl_rx/trunk/asp3_dcre/target/gr_citrus_gcc/tSIOPortGRCitrusMain_inline.h

    r337 r374  
    5757         */
    5858        cSIOPort_open();
    59 
    60         /*
    61          *  SIOの割込みマスクを解除する.
    62          */
    63         cRxInterruptRequest_enable();
    64         cTxInterruptRequest_enable();
    6559}
    6660
     
    7771         */
    7872        cSIOPort_close();
    79 
    80         /*
    81          *  SIOの割込みをマスクする.
    82          */
    83         cRxInterruptRequest_disable();
    84         cTxInterruptRequest_disable();
    8573}
    8674
  • asp3_tinet_ecnl_rx/trunk/asp3_dcre/target/gr_citrus_gcc/target_kernel_impl.c

    r364 r374  
    5353#include "syssvc/serial.h"
    5454#ifdef TOPPERS_OMIT_TECS
    55 #include "rx630_uart.h"
     55#include "serial_api.h"
     56#endif
     57
     58#ifdef TOPPERS_OMIT_TECS
     59serial_t log_serial;
    5660#endif
    5761
     
    7579                sil_reb_mem(PORTA_PDR_ADDR) & ~PORT_PDR_B7_BIT);
    7680
     81#ifdef TOPPERS_OMIT_TECS
    7782        /*
    7883         *  シリアルポートの設定
    7984         */
    80 
    81         /* ポートP20をTxD0, ポートP21をRxD0に */
    82         sil_wrb_mem(PORT2_PMR_ADDR, 0x03);
    83 
    84         /* データディレクションレジスタ(PDR)の設定 P21(RxD0)を入力ポートにする */
    85         sil_wrb_mem(PORT2_PDR_ADDR,
    86                 sil_reb_mem(PORT2_PDR_ADDR) & ~PORT_PDR_B1_BIT);
    87 
    88         /* データディレクションレジスタ(PDR)の設定 P20(TxD0)を出力ポートにする */
    89         sil_wrb_mem(PORT2_PDR_ADDR,
    90                 sil_reb_mem(PORT2_PDR_ADDR) | PORT_PDR_B0_BIT);
     85        serial_init(&log_serial, P20, P21);
     86        serial_baud(&log_serial, UART_BAUDRATE);
     87        serial_format(&log_serial, 8, ParityNone, 1);
     88#endif
    9189
    9290        /* ポートP40~P47を周辺機器に */
     
    149147{
    150148        if (c == '\n') {
    151                 rx630_uart_pol_putc('\r', TARGET_PUTC_PORTID);
     149                serial_putc(&log_serial, '\r');
    152150        }
    153151
    154         rx630_uart_pol_putc(c, TARGET_PUTC_PORTID);
     152        serial_putc(&log_serial, c);
    155153}
    156154#endif
  • asp3_tinet_ecnl_rx/trunk/asp3_dcre/target/gr_citrus_gcc/target_serial.c

    r337 r374  
    33 *      Toyohashi Open Platform for Embedded Real-Time Systems/
    44 *      Advanced Standard Profile Kernel
    5  * 
     5 *
    66 *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
    77 *                              Toyohashi Univ. of Technology, JAPAN
     
    1212 *  Copyright (C) 2008-2010 by Witz Corporation, JAPAN
    1313 *  Copyright (C) 2013      by Mitsuhiro Matsuura
    14  * 
     14 *
    1515 *  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    1616 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     
    3535 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
    3636 *      免責すること.
    37  * 
     37 *
    3838 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
    3939 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     
    4141 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    4242 *  の責任を負わない.
    43  * 
     43 *
    4444 *  @(#) $Id$
    4545 */
     
    5151#include <sil.h>
    5252#include "target_serial.h"
     53#include "hal/serial_api.h"
     54#include "target_syssvc.h"
     55#include "syssvc/serial.h"
     56
     57/*
     58 *  シリアルI/Oポート初期化ブロックの定義
     59 */
     60typedef struct sio_port_initialization_block {
     61        PinName tx;
     62        PinName rx;
     63} SIOPINIB;
     64
     65/*
     66 *  シリアルI/Oポート管理ブロックの定義
     67 */
     68struct sio_port_control_block {
     69        const SIOPINIB *p_siopinib;
     70        intptr_t exinf;
     71        bool_t openflag;
     72        serial_t serial;
     73};
     74
     75/*
     76 *  シリアルI/Oポート管理ブロックのエリア
     77 */
     78SIOPCB siopcb_table[TNUM_PORT];
     79
     80static const SIOPINIB siopinib_table[TNUM_SIOP] =
     81{
     82        { P20, P21 },
     83#if TNUM_SIOP > 1
     84        { P50, P52 },
     85#endif
     86#if TNUM_SIOP > 2
     87        { P32, P33 },
     88#endif
     89#if TNUM_SIOP > 3
     90        { PC7, PC6 },
     91#endif
     92#if TNUM_SIOP > 4
     93        { P26, P30 },
     94#endif
     95#if TNUM_SIOP > 5
     96        { PB5, P25 },
     97#endif
     98#if TNUM_SIOP > 6
     99        { PA0, PC2 },
     100#endif
     101};
     102
     103/*
     104 *  シリアルI/OポートIDから管理ブロックを取り出すためのマクロ
     105 */
     106#define INDEX_SIOP(siopid)       ((uint_t)((siopid) - 1))
     107#define get_siopcb(siopid)       (&(siopcb_table[INDEX_SIOP(siopid)]))
     108#define get_siopinib(siopid) (&(siopinib_table[INDEX_SIOP(siopid)]))
     109
     110static void mbed_serial_irq_handler(uint32_t id, SerialIrq event);
    53111
    54112/*
     
    58116sio_initialize(intptr_t exinf)
    59117{
    60         rx630_uart_initialize();
     118        SIOPCB  *p_siopcb;
     119        uint_t  i;
     120
     121        /*
     122         *  シリアルI/Oポート管理ブロックの初期化
     123         */
     124        for (p_siopcb = siopcb_table, i = 0; i < TNUM_SIOP; p_siopcb++, i++) {
     125                p_siopcb->p_siopinib = &(siopinib_table[i]);
     126                p_siopcb->openflag = false;
     127        }
    61128}
    62129
     
    69136        SIOPCB  *p_siopcb = NULL;
    70137        ER      ercd;
    71         INTNO   intno_sio_tx, intno_sio_rx;
    72        
    73         /*
    74          *  シリアルI/O割込みをマスクする.
    75          *  (dis_int関数は、"\kernel\interrupt.c"に記述)
    76          */
    77         p_siopcb = rx630_uart_get_siopcb(siopid);
    78         intno_sio_tx = rx630_uart_intno_tx(p_siopcb);
    79         intno_sio_rx = rx630_uart_intno_rx(p_siopcb);
    80         ercd = dis_int(intno_sio_tx);
    81         assert(ercd == E_OK);
    82         ercd = dis_int(intno_sio_rx);
    83         assert(ercd == E_OK);
    84        
    85         p_siopcb =
    86                 rx630_uart_opn_por(siopid , exinf , UART_BAUDRATE , UART_CLKSRC);
    87 
    88         /*
    89          *  シリアルI/O割込みをマスク解除する.
    90          *  (ena_int関数は、"\kernel\interrupt.c"に記述)
    91          */
    92         ercd = ena_int(intno_sio_tx);
    93         assert(ercd == E_OK);
    94         ercd = ena_int(intno_sio_rx);
    95         assert(ercd == E_OK);
    96 
    97         return(p_siopcb);
     138        serial_t *serial;
     139
     140        if ((siopid <= 0) || (siopid > (sizeof(siopcb_table) / sizeof(siopcb_table[0]))))
     141                return NULL;
     142        p_siopcb = get_siopcb(siopid);
     143
     144        if (p_siopcb->openflag)
     145                return NULL;
     146        p_siopcb->openflag = true;
     147        p_siopcb->exinf = exinf;
     148
     149        serial = &p_siopcb->serial;
     150        serial_init(serial, p_siopcb->p_siopinib->tx, p_siopcb->p_siopinib->rx);
     151        serial_baud(serial, UART_BAUDRATE);
     152        serial_format(serial, 8, ParityNone, 1);
     153
     154        serial_irq_handler(serial, mbed_serial_irq_handler, siopid);
     155
     156        return p_siopcb;
    98157}
    99158
     
    105164{
    106165        ER        ercd;
    107         INTNO   intno_sio_tx, intno_sio_rx;
     166        serial_t *serial = &p_siopcb->serial;
    108167
    109168        /*
    110169         *  デバイス依存のクローズ処理.
    111170         */
    112         rx630_uart_cls_por(p_siopcb);
    113        
    114         /*
    115          *  シリアルI/O割込みをマスクする.
    116          */
    117         intno_sio_tx = rx630_uart_intno_tx(p_siopcb);
    118         intno_sio_rx = rx630_uart_intno_rx(p_siopcb);
    119         ercd = dis_int(intno_sio_tx);
    120         assert(ercd == E_OK);
    121         ercd = dis_int(intno_sio_rx);
    122         assert(ercd == E_OK);
     171        serial_free(serial);
     172        p_siopcb->openflag = false;
     173}
     174
     175/*
     176 *  シリアルI/Oポートへの文字送信
     177 */
     178bool_t
     179sio_snd_chr(SIOPCB *p_siopcb, char c)
     180{
     181        serial_t *serial = &p_siopcb->serial;
     182        if (!serial_writable(serial))
     183                return false;
     184        serial_putc(serial, c);
     185        return true;
     186}
     187
     188/*
     189 *  シリアルI/Oポートからの文字受信
     190 */
     191int_t
     192sio_rcv_chr(SIOPCB *p_siopcb)
     193{
     194        serial_t *serial = &p_siopcb->serial;
     195        if (!serial_readable(serial))
     196                return -1;
     197        return serial_getc(serial);
     198}
     199
     200/*
     201 *  シリアルI/Oポートからのコールバックの許可
     202 */
     203void
     204sio_ena_cbr(SIOPCB *p_siopcb, uint_t cbrtn)
     205{
     206        serial_t *serial = &p_siopcb->serial;
     207        switch (cbrtn) {
     208        case SIO_RDY_SND:
     209                serial_irq_set(serial, TxIrq, true);
     210                break;
     211        case SIO_RDY_RCV:
     212                serial_irq_set(serial, RxIrq, true);
     213                break;
     214        }
     215}
     216
     217/*
     218 *  シリアルI/Oポートからのコールバックの禁止
     219 */
     220void
     221sio_dis_cbr(SIOPCB *p_siopcb, uint_t cbrtn)
     222{
     223        serial_t *serial = &p_siopcb->serial;
     224        switch (cbrtn) {
     225        case SIO_RDY_SND:
     226                serial_irq_set(serial, TxIrq, false);
     227                break;
     228        case SIO_RDY_RCV:
     229                serial_irq_set(serial, RxIrq, false);
     230                break;
     231        }
     232}
     233
     234/*
     235 *  シリアルI/Oポートからの送信可能コールバック
     236 */
     237void
     238serial_irdy_snd(SIOPCB  *p_siopcb)
     239{
     240        /* 共通部(syssvc\serial.c)にあるsio_irdy_snd関数を呼び出し*/
     241        sio_irdy_snd(p_siopcb->exinf);
     242}
     243
     244/*
     245 *  シリアルI/Oポートからの受信通知コールバック
     246 */
     247void
     248serial_irdy_rcv(SIOPCB  *p_siopcb)
     249{
     250        /* 共通部(syssvc\serial.c)にあるsio_irdy_rcv関数を呼び出し*/
     251        sio_irdy_rcv(p_siopcb->exinf);
    123252}
    124253
     
    126255 *  SIOの割込みハンドラ
    127256 */
    128 void sio_tx_isr(intptr_t exinf)
    129 {
    130         rx630_uart_tx_isr(exinf);
    131 }
    132 
    133 /*
    134  *  SIOの割込みハンドラ
    135  */
    136 void sio_rx_isr(intptr_t exinf)
    137 {
    138         rx630_uart_rx_isr(exinf);
    139 }
    140 
    141 /*
    142  *  シリアルI/Oポートへの文字送信
    143  */
    144 bool_t
    145 sio_snd_chr(SIOPCB *siopcb, char c)
    146 {
    147         return(rx630_uart_snd_chr(siopcb, c));
    148 }
    149 
    150 /*
    151  *  シリアルI/Oポートからの文字受信
    152  */
    153 int_t
    154 sio_rcv_chr(SIOPCB *siopcb)
    155 {
    156         return(rx630_uart_rcv_chr(siopcb));
    157 }
    158 
    159 /*
    160  *  シリアルI/Oポートからのコールバックの許可
    161  */
    162 void
    163 sio_ena_cbr(SIOPCB *siopcb, uint_t cbrtn)
    164 {
    165         rx630_uart_ena_cbr(siopcb, cbrtn);
    166 }
    167 
    168 /*
    169  *  シリアルI/Oポートからのコールバックの禁止
    170  */
    171 void
    172 sio_dis_cbr(SIOPCB *siopcb, uint_t cbrtn)
    173 {
    174         rx630_uart_dis_cbr(siopcb, cbrtn);
    175 }
    176 
    177 /*
    178  *  シリアルI/Oポートからの送信可能コールバック
    179  */
    180 void
    181 rx630_uart_irdy_snd(intptr_t exinf)
    182 {
    183         /* 共通部(syssvc\serial.c)にあるsio_irdy_snd関数を呼び出し*/
    184         sio_irdy_snd(exinf);
    185 }
    186 
    187 /*
    188  *  シリアルI/Oポートからの受信通知コールバック
    189  */
    190 void
    191 rx630_uart_irdy_rcv(intptr_t exinf)
    192 {
    193         /* 共通部(syssvc\serial.c)にあるsio_irdy_rcv関数を呼び出し*/
    194         sio_irdy_rcv(exinf);
    195 }
    196 
     257void
     258mbed_serial_irq_handler(uint32_t siopid, SerialIrq event)
     259{
     260        SIOPCB  *p_siopcb;
     261
     262        if ((siopid <= 0) || (siopid > (sizeof(siopcb_table) / sizeof(siopcb_table[0]))))
     263                return;
     264        p_siopcb = get_siopcb(siopid);
     265
     266        if (!p_siopcb->openflag)
     267                return;
     268
     269        switch (event) {
     270        case TxIrq:
     271                serial_irdy_snd(p_siopcb);
     272                break;
     273        case RxIrq:
     274                serial_irdy_rcv(p_siopcb);
     275                break;
     276        }
     277}
  • asp3_tinet_ecnl_rx/trunk/asp3_dcre/target/gr_citrus_gcc/target_serial.cfg

    r337 r374  
    44
    55#include <target_serial.h>
     6
    67ATT_INI({ TA_NULL, 0, sio_initialize });
    7 CFG_INT(INTNO_SIO_TX, { INTATR_SIO, INTPRI_SIO });
    8 CFG_INT(INTNO_SIO_RX, { INTATR_SIO, INTPRI_SIO });
    98
    10 CRE_ISR(INTNO_SIO_TX_ISR, {TA_NULL, SIO_PORTID, INTNO_SIO_TX, sio_tx_isr, 1});
    11 CRE_ISR(INTNO_SIO_RX_ISR, {TA_NULL, SIO_PORTID, INTNO_SIO_RX, sio_rx_isr, 1});
  • asp3_tinet_ecnl_rx/trunk/asp3_dcre/target/gr_citrus_gcc/target_serial.h

    r337 r374  
    5353
    5454#include "gr_citrus.h"
    55 #include "rx630_uart.h"
     55#include "serial_api.h"
    5656
    57 /*
    58  *  SIOの割込みハンドラのベクタ番号
    59  */
    60 #define INHNO_SIO_TX    INT_SCI1_TEI                    /* 割込みハンドラ番号 */
    61 #define INTNO_SIO_TX    INT_SCI1_TEI                    /* 割込み番号 */
    62 #define INHNO_SIO_RX    INT_SCI1_RXI                    /* 割込みハンドラ番号 */
    63 #define INTNO_SIO_RX    INT_SCI1_RXI                    /* 割込み番号 */
    64 #define INTPRI_SIO              -4                                              /* 割込み優先度 */
    65 #define INTATR_SIO              (TA_NULL)                               /* 割込み属性 */
     57#define SIO_RDY_SND 1
     58#define SIO_RDY_RCV 2
    6659
    6760#ifndef TOPPERS_MACRO_ONLY
    6861
     62typedef struct sio_port_control_block SIOPCB;
    6963
    7064/*
     
    8276 */
    8377extern void             sio_cls_por(SIOPCB *p_siopcb);
    84 
    85 /*
    86  *  SIOの割込みハンドラ
    87  */
    88 extern void     sio_tx_isr(intptr_t exinf);
    89 extern void     sio_rx_isr(intptr_t exinf);
    9078
    9179/*
  • asp3_tinet_ecnl_rx/trunk/asp3_dcre/target/gr_citrus_gcc/target_syssvc.h

    r337 r374  
    113113
    114114/*
     115 *  使用するシリアルポートのPinName
     116 */
     117#define STDIO_UART_TX P20
     118#define STDIO_UART_RX P21
     119
     120/*
    115121 *  システムログタスク関連の定数の定義
    116122 *
  • asp3_tinet_ecnl_rx/trunk/asp3_dcre/target/gr_sakura_gcc/Makefile.target

    r337 r374  
    1313#  コンパイルオプション
    1414#
    15 INCLUDES := $(INCLUDES) -I$(TARGETDIR) -I$(SRCDIR)/pdic
     15INCLUDES := $(INCLUDES) -I$(TARGETDIR) -I$(SRCDIR)/mbed
    1616
    1717#
     
    2525#  システムサービスに関する定義
    2626#
    27 SYSSVC_DIRS := $(SYSSVC_DIRS)
     27SYSSVC_DIRS := $(SYSSVC_DIRS) $(SRCDIR)/mbed
    2828SYSSVC_COBJS := $(SYSSVC_COBJS)
    2929
  • asp3_tinet_ecnl_rx/trunk/asp3_dcre/target/gr_sakura_gcc/gr_sakura.h

    r337 r374  
    7171 *  ボーレート設定
    7272 */
    73 #define BAUD_19200BPS           UINT_C( 78 )
    74 #define BAUD_38400BPS           UINT_C( 39 )
    75 #define BAUD_57600BPS           UINT_C( 25 )
    76 #define BAUD_115200BPS          UINT_C( 12 )
    77 
    78 #define UART_BAUDRATE           BAUD_115200BPS
     73#define UART_BAUDRATE           115200
    7974
    8075/*
  • asp3_tinet_ecnl_rx/trunk/asp3_dcre/target/gr_sakura_gcc/tSIOPortGRSakura.cdl

    r337 r374  
    5151 */
    5252import_C("gr_sakura.h");
    53 import_C("rx630.h");
     53import_C("device.h");
    5454
    5555/*
    5656 *  FIFO内蔵シリアルコミュニケーションインタフェース用 簡易SIOドライバ
    5757 */
    58 import("tSCIF.cdl");
     58import("tMbedSerial.cdl");
    5959
    6060/*
     
    7474        call                    sSIOPort        cSIOPort;
    7575        [inline] entry  siSIOCBR        eiSIOCBR;
    76 
    77         /*
    78          *  割込み要求ライン操作のための結合
    79          */
    80         call    sInterruptRequest       cRxInterruptRequest;
    81         call    sInterruptRequest       cTxInterruptRequest;
    8276};
    8377
     
    8680 *  ト)のセルタイプ
    8781 */
    88 [active]
    8982composite tSIOPortGRSakura {
    9083        /*
     
    9891         */
    9992        attr {
    100                 uintptr_t       baseAddress;                            /* ベースアドレス */
    101                 INTNO           rxInterruptNumber;                      /* 受信割込み番号 */
    102                 INTNO           txInterruptNumber;                      /* 送信割込み番号 */
    103                 PRI                     isrPriority = 1;                        /* ISR優先度 */
    104                 PRI                     interruptPriority = -4;         /* 割込み優先度 */
     93                int32_t tx;                                                             /* 送信Pin */
     94                int32_t rx;                                                             /* 受信Pin */
    10595                uint32_t        baudRate = 115200;                      /* ボーレートの設定値 */
    10696        };
     
    10999         *  SIOドライバ
    110100         */
    111         cell tSCIF SCIF {
    112                 baseAddress = composite.baseAddress;
     101        cell tMbedSerial MbedSerial {
     102                tx          = composite.tx;
     103                rx          = composite.rx;
    113104                baudRate    = composite.baudRate;
    114105                ciSIOCBR    = SIOPortMain.eiSIOCBR;
     
    120111        cell tSIOPortGRSakuraMain SIOPortMain {
    121112                ciSIOCBR            => composite.ciSIOCBR;
    122                 cSIOPort            = SCIF.eSIOPort;
    123                 cRxInterruptRequest = RxInterruptRequest.eInterruptRequest;
    124                 cTxInterruptRequest = TxInterruptRequest.eInterruptRequest;
     113                cSIOPort            = MbedSerial.eSIOPort;
    125114        };
    126115        composite.eSIOPort => SIOPortMain.eSIOPort;
    127 
    128         /*
    129          *  SIOの受信割込みサービスルーチンと割込み要求ライン
    130          */
    131         cell tISR RxISRInstance {
    132                 interruptNumber = composite.rxInterruptNumber;
    133                 isrPriority     = composite.isrPriority;
    134                 ciISRBody       = SCIF.eiRxISR;
    135         };
    136         cell tInterruptRequest RxInterruptRequest {
    137                 interruptNumber   = composite.rxInterruptNumber;
    138                 interruptPriority = composite.interruptPriority;
    139         };
    140 
    141         /*
    142          *  SIOの受信割込みサービスルーチンと割込み要求ライン
    143          */
    144         cell tISR TxISRInstance {
    145                 interruptNumber = composite.txInterruptNumber;
    146                 isrPriority     = composite.isrPriority;
    147                 ciISRBody       = SCIF.eiTxISR;
    148         };
    149         cell tInterruptRequest TxInterruptRequest {
    150                 interruptNumber   = composite.txInterruptNumber;
    151                 interruptPriority = composite.interruptPriority;
    152         };
    153116};
    154117
     
    158121 *  サンプルプログラムが使うポートが,SIOPortTarget1に固定されているた
    159122 *  め,ポート1とポート3を入れ換えている.具体的には,SIOPortTarget1は
    160  *  SCIFのチャネル2(チャネル番号は0から始まるので,ポート3のこと)に,
    161  *  SIOPortTarget3はSCIFのチャネル0につながっている.
     123 *  MbedSerialのチャネル2(チャネル番号は0から始まるので,ポート3のこと)に,
     124 *  SIOPortTarget3はMbedSerialのチャネル0につながっている.
    162125 */
    163126[prototype]
    164127cell tSIOPortGRSakura SIOPortTarget1 {
    165128        /* 属性の設定 */
    166         baseAddress       = C_EXP("SCI0_BASE");
    167         rxInterruptNumber = C_EXP("INT_SCI0_RXI");
    168         txInterruptNumber = C_EXP("INT_SCI0_TEI");
     129        tx = C_EXP("P20");              /* PIN_IO1 */
     130        rx = C_EXP("P21");              /* PIN_IO0 */
    169131};
    170132
     
    172134cell tSIOPortGRSakura SIOPortTarget2 {
    173135        /* 属性の設定 */
    174         baseAddress       = C_EXP("SCI1_BASE");
    175         rxInterruptNumber = C_EXP("INT_SCI1_RXI");
    176         txInterruptNumber = C_EXP("INT_SCI1_TEI");
     136        tx = C_EXP("P32");              /* PIN_IO6 */
     137        rx = C_EXP("P33");              /* PIN_IO7 */
    177138};
    178139
     
    180141cell tSIOPortGRSakura SIOPortTarget3 {
    181142        /* 属性の設定 */
    182         baseAddress       = C_EXP("SCI2_BASE");
    183         rxInterruptNumber = C_EXP("INT_SCI2_RXI");
    184         txInterruptNumber = C_EXP("INT_SCI2_TEI");
     143        tx = C_EXP("P50");              /* PIN_IO24 */
     144        rx = C_EXP("P52");              /* PIN_IO26 */
    185145};
    186146
     
    188148cell tSIOPortGRSakura SIOPortTarget4 {
    189149        /* 属性の設定 */
    190         baseAddress       = C_EXP("SCI3_BASE");
    191         rxInterruptNumber = C_EXP("INT_SCI3_RXI");
    192         txInterruptNumber = C_EXP("INT_SCI3_TEI");
     150        tx = C_EXP("P23");              /* PIN_IO3 */
     151        rx = C_EXP("P25");              /* PIN_IO5 */
    193152};
    194153
     
    196155cell tSIOPortGRSakura SIOPortTarget5 {
    197156        /* 属性の設定 */
    198         baseAddress       = C_EXP("SCI4_BASE");
    199         rxInterruptNumber = C_EXP("INT_SCI4_RXI");
    200         txInterruptNumber = C_EXP("INT_SCI4_TEI");
     157        tx = C_EXP("PC3");              /* PIN_IO9 */
     158        rx = C_EXP("PC2");              /* PIN_IO8 */
    201159};
    202160
     
    204162cell tSIOPortGRSakura SIOPortTarget6 {
    205163        /* 属性の設定 */
    206         baseAddress       = C_EXP("SCI5_BASE");
    207         rxInterruptNumber = C_EXP("INT_SCI5_RXI");
    208         txInterruptNumber = C_EXP("INT_SCI5_TEI");
     164        tx = C_EXP("PC7");              /* PIN_IO12 */
     165        rx = C_EXP("PC6");              /* PIN_IO11 */
    209166};
    210167
     
    212169cell tSIOPortGRSakura SIOPortTarget7 {
    213170        /* 属性の設定 */
    214         baseAddress       = C_EXP("SCI6_BASE");
    215         rxInterruptNumber = C_EXP("INT_SCI6_RXI");
    216         txInterruptNumber = C_EXP("INT_SCI6_TEI");
     171        tx = C_EXP("P26");              /* PIN_IO58 */
     172        rx = C_EXP("P30");              /* PIN_IO60 */
    217173};
    218174
     
    220176cell tSIOPortGRSakura SIOPortTarget8 {
    221177        /* 属性の設定 */
    222         baseAddress       = NULL;
    223         rxInterruptNumber = NULL;
    224         txInterruptNumber = NULL;
     178        tx = NULL;
     179        rx = NULL;
    225180};
  • asp3_tinet_ecnl_rx/trunk/asp3_dcre/target/gr_sakura_gcc/tSIOPortGRSakuraMain_inline.h

    r337 r374  
    5757         */
    5858        cSIOPort_open();
    59 
    60         /*
    61          *  SIOの割込みマスクを解除する.
    62          */
    63         cRxInterruptRequest_enable();
    64         cTxInterruptRequest_enable();
    6559}
    6660
     
    7771         */
    7872        cSIOPort_close();
    79 
    80         /*
    81          *  SIOの割込みをマスクする.
    82          */
    83         cRxInterruptRequest_disable();
    84         cTxInterruptRequest_disable();
    8573}
    8674
  • asp3_tinet_ecnl_rx/trunk/asp3_dcre/target/gr_sakura_gcc/target_kernel_impl.c

    r364 r374  
    5353#include "syssvc/serial.h"
    5454#ifdef TOPPERS_OMIT_TECS
    55 #include "rx630_uart.h"
     55#include "serial_api.h"
     56#endif
     57
     58#ifdef TOPPERS_OMIT_TECS
     59serial_t log_serial;
    5660#endif
    5761
     
    7882                sil_reb_mem(PORTA_PDR_ADDR) & ~PORT_PDR_B7_BIT);
    7983
     84#ifdef TOPPERS_OMIT_TECS
    8085        /*
    8186         *  シリアルポートの設定
    8287         */
    83 
    84         /* ポートP20をTxD0, ポートP21をRxD0に */
    85         sil_wrb_mem(PORT2_PMR_ADDR, 0x03);
    86 
    87         /* データディレクションレジスタ(PDR)の設定 P21(RxD0)を入力ポートにする */
    88         sil_wrb_mem(PORT2_PDR_ADDR,
    89                 sil_reb_mem(PORT2_PDR_ADDR) & ~PORT_PDR_B1_BIT);
    90 
    91         /* データディレクションレジスタ(PDR)の設定 P20(TxD0)を出力ポートにする */
    92         sil_wrb_mem(PORT2_PDR_ADDR,
    93                 sil_reb_mem(PORT2_PDR_ADDR) | PORT_PDR_B0_BIT);
     88        serial_init(&log_serial, P20, P21);
     89        serial_baud(&log_serial, UART_BAUDRATE);
     90        serial_format(&log_serial, 8, ParityNone, 1);
     91#endif
    9492
    9593        /* ポートP40~P47を周辺機器に */
     
    152150{
    153151        if (c == '\n') {
    154                 rx630_uart_pol_putc('\r', TARGET_PUTC_PORTID);
     152                serial_putc(&log_serial, '\r');
    155153        }
    156154
    157         rx630_uart_pol_putc(c, TARGET_PUTC_PORTID);
     155        serial_putc(&log_serial, c);
    158156}
    159157#endif
  • asp3_tinet_ecnl_rx/trunk/asp3_dcre/target/gr_sakura_gcc/target_serial.c

    r337 r374  
    33 *      Toyohashi Open Platform for Embedded Real-Time Systems/
    44 *      Advanced Standard Profile Kernel
    5  * 
     5 *
    66 *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
    77 *                              Toyohashi Univ. of Technology, JAPAN
     
    1212 *  Copyright (C) 2008-2010 by Witz Corporation, JAPAN
    1313 *  Copyright (C) 2013      by Mitsuhiro Matsuura
    14  * 
     14 *
    1515 *  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    1616 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     
    3535 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
    3636 *      免責すること.
    37  * 
     37 *
    3838 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
    3939 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     
    4141 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    4242 *  の責任を負わない.
    43  * 
     43 *
    4444 *  @(#) $Id$
    4545 */
     
    5151#include <sil.h>
    5252#include "target_serial.h"
     53#include "hal/serial_api.h"
     54#include "target_syssvc.h"
     55#include "syssvc/serial.h"
     56
     57/*
     58 *  シリアルI/Oポート初期化ブロックの定義
     59 */
     60typedef struct sio_port_initialization_block {
     61        PinName tx;
     62        PinName rx;
     63} SIOPINIB;
     64
     65/*
     66 *  シリアルI/Oポート管理ブロックの定義
     67 */
     68struct sio_port_control_block {
     69        const SIOPINIB *p_siopinib;
     70        intptr_t exinf;
     71        bool_t openflag;
     72        serial_t serial;
     73};
     74
     75/*
     76 *  シリアルI/Oポート管理ブロックのエリア
     77 */
     78SIOPCB siopcb_table[TNUM_PORT];
     79
     80static const SIOPINIB siopinib_table[TNUM_SIOP] =
     81{
     82        { P20, P21 },
     83#if TNUM_SIOP > 1
     84        { P32, P33 },
     85#endif
     86#if TNUM_SIOP > 2
     87        { P50, P52 },
     88#endif
     89#if TNUM_SIOP > 3
     90        { P23, P25 },
     91#endif
     92#if TNUM_SIOP > 4
     93        { PC3, PC2 },
     94#endif
     95#if TNUM_SIOP > 5
     96        { PC7, PC6 },
     97#endif
     98#if TNUM_SIOP > 6
     99        { P26, P30 },
     100#endif
     101};
     102
     103/*
     104 *  シリアルI/OポートIDから管理ブロックを取り出すためのマクロ
     105 */
     106#define INDEX_SIOP(siopid)       ((uint_t)((siopid) - 1))
     107#define get_siopcb(siopid)       (&(siopcb_table[INDEX_SIOP(siopid)]))
     108#define get_siopinib(siopid) (&(siopinib_table[INDEX_SIOP(siopid)]))
     109
     110static void mbed_serial_irq_handler(uint32_t id, SerialIrq event);
    53111
    54112/*
     
    58116sio_initialize(intptr_t exinf)
    59117{
    60         rx630_uart_initialize();
     118        SIOPCB  *p_siopcb;
     119        uint_t  i;
     120
     121        /*
     122         *  シリアルI/Oポート管理ブロックの初期化
     123         */
     124        for (p_siopcb = siopcb_table, i = 0; i < TNUM_SIOP; p_siopcb++, i++) {
     125                p_siopcb->p_siopinib = &(siopinib_table[i]);
     126                p_siopcb->openflag = false;
     127        }
    61128}
    62129
     
    69136        SIOPCB  *p_siopcb = NULL;
    70137        ER      ercd;
    71         INTNO   intno_sio_tx, intno_sio_rx;
    72        
    73         /*
    74          *  シリアルI/O割込みをマスクする.
    75          *  (dis_int関数は、"\kernel\interrupt.c"に記述)
    76          */
    77         p_siopcb = rx630_uart_get_siopcb(siopid);
    78         intno_sio_tx = rx630_uart_intno_tx(p_siopcb);
    79         intno_sio_rx = rx630_uart_intno_rx(p_siopcb);
    80         ercd = dis_int(intno_sio_tx);
    81         assert(ercd == E_OK);
    82         ercd = dis_int(intno_sio_rx);
    83         assert(ercd == E_OK);
    84        
    85         p_siopcb =
    86                 rx630_uart_opn_por(siopid , exinf , UART_BAUDRATE , UART_CLKSRC);
    87 
    88         /*
    89          *  シリアルI/O割込みをマスク解除する.
    90          *  (ena_int関数は、"\kernel\interrupt.c"に記述)
    91          */
    92         ercd = ena_int(intno_sio_tx);
    93         assert(ercd == E_OK);
    94         ercd = ena_int(intno_sio_rx);
    95         assert(ercd == E_OK);
    96 
    97         return(p_siopcb);
     138        serial_t *serial;
     139
     140        if ((siopid <= 0) || (siopid > (sizeof(siopcb_table) / sizeof(siopcb_table[0]))))
     141                return NULL;
     142        p_siopcb = get_siopcb(siopid);
     143
     144        if (p_siopcb->openflag)
     145                return NULL;
     146        p_siopcb->openflag = true;
     147        p_siopcb->exinf = exinf;
     148
     149        serial = &p_siopcb->serial;
     150        serial_init(serial, p_siopcb->p_siopinib->tx, p_siopcb->p_siopinib->rx);
     151        serial_baud(serial, UART_BAUDRATE);
     152        serial_format(serial, 8, ParityNone, 1);
     153
     154        serial_irq_handler(serial, mbed_serial_irq_handler, siopid);
     155
     156        return p_siopcb;
    98157}
    99158
     
    105164{
    106165        ER        ercd;
    107         INTNO   intno_sio_tx, intno_sio_rx;
     166        serial_t *serial = &p_siopcb->serial;
    108167
    109168        /*
    110169         *  デバイス依存のクローズ処理.
    111170         */
    112         rx630_uart_cls_por(p_siopcb);
    113        
    114         /*
    115          *  シリアルI/O割込みをマスクする.
    116          */
    117         intno_sio_tx = rx630_uart_intno_tx(p_siopcb);
    118         intno_sio_rx = rx630_uart_intno_rx(p_siopcb);
    119         ercd = dis_int(intno_sio_tx);
    120         assert(ercd == E_OK);
    121         ercd = dis_int(intno_sio_rx);
    122         assert(ercd == E_OK);
     171        serial_free(serial);
     172        p_siopcb->openflag = false;
     173}
     174
     175/*
     176 *  シリアルI/Oポートへの文字送信
     177 */
     178bool_t
     179sio_snd_chr(SIOPCB *p_siopcb, char c)
     180{
     181        serial_t *serial = &p_siopcb->serial;
     182        if (!serial_writable(serial))
     183                return false;
     184        serial_putc(serial, c);
     185        return true;
     186}
     187
     188/*
     189 *  シリアルI/Oポートからの文字受信
     190 */
     191int_t
     192sio_rcv_chr(SIOPCB *p_siopcb)
     193{
     194        serial_t *serial = &p_siopcb->serial;
     195        if (!serial_readable(serial))
     196                return -1;
     197        return serial_getc(serial);
     198}
     199
     200/*
     201 *  シリアルI/Oポートからのコールバックの許可
     202 */
     203void
     204sio_ena_cbr(SIOPCB *p_siopcb, uint_t cbrtn)
     205{
     206        serial_t *serial = &p_siopcb->serial;
     207        switch (cbrtn) {
     208        case SIO_RDY_SND:
     209                serial_irq_set(serial, TxIrq, true);
     210                break;
     211        case SIO_RDY_RCV:
     212                serial_irq_set(serial, RxIrq, true);
     213                break;
     214        }
     215}
     216
     217/*
     218 *  シリアルI/Oポートからのコールバックの禁止
     219 */
     220void
     221sio_dis_cbr(SIOPCB *p_siopcb, uint_t cbrtn)
     222{
     223        serial_t *serial = &p_siopcb->serial;
     224        switch (cbrtn) {
     225        case SIO_RDY_SND:
     226                serial_irq_set(serial, TxIrq, false);
     227                break;
     228        case SIO_RDY_RCV:
     229                serial_irq_set(serial, RxIrq, false);
     230                break;
     231        }
     232}
     233
     234/*
     235 *  シリアルI/Oポートからの送信可能コールバック
     236 */
     237void
     238serial_irdy_snd(SIOPCB  *p_siopcb)
     239{
     240        /* 共通部(syssvc\serial.c)にあるsio_irdy_snd関数を呼び出し*/
     241        sio_irdy_snd(p_siopcb->exinf);
     242}
     243
     244/*
     245 *  シリアルI/Oポートからの受信通知コールバック
     246 */
     247void
     248serial_irdy_rcv(SIOPCB  *p_siopcb)
     249{
     250        /* 共通部(syssvc\serial.c)にあるsio_irdy_rcv関数を呼び出し*/
     251        sio_irdy_rcv(p_siopcb->exinf);
    123252}
    124253
     
    126255 *  SIOの割込みハンドラ
    127256 */
    128 void sio_tx_isr(intptr_t exinf)
    129 {
    130         rx630_uart_tx_isr(exinf);
    131 }
    132 
    133 /*
    134  *  SIOの割込みハンドラ
    135  */
    136 void sio_rx_isr(intptr_t exinf)
    137 {
    138         rx630_uart_rx_isr(exinf);
    139 }
    140 
    141 /*
    142  *  シリアルI/Oポートへの文字送信
    143  */
    144 bool_t
    145 sio_snd_chr(SIOPCB *siopcb, char c)
    146 {
    147         return(rx630_uart_snd_chr(siopcb, c));
    148 }
    149 
    150 /*
    151  *  シリアルI/Oポートからの文字受信
    152  */
    153 int_t
    154 sio_rcv_chr(SIOPCB *siopcb)
    155 {
    156         return(rx630_uart_rcv_chr(siopcb));
    157 }
    158 
    159 /*
    160  *  シリアルI/Oポートからのコールバックの許可
    161  */
    162 void
    163 sio_ena_cbr(SIOPCB *siopcb, uint_t cbrtn)
    164 {
    165         rx630_uart_ena_cbr(siopcb, cbrtn);
    166 }
    167 
    168 /*
    169  *  シリアルI/Oポートからのコールバックの禁止
    170  */
    171 void
    172 sio_dis_cbr(SIOPCB *siopcb, uint_t cbrtn)
    173 {
    174         rx630_uart_dis_cbr(siopcb, cbrtn);
    175 }
    176 
    177 /*
    178  *  シリアルI/Oポートからの送信可能コールバック
    179  */
    180 void
    181 rx630_uart_irdy_snd(intptr_t exinf)
    182 {
    183         /* 共通部(syssvc\serial.c)にあるsio_irdy_snd関数を呼び出し*/
    184         sio_irdy_snd(exinf);
    185 }
    186 
    187 /*
    188  *  シリアルI/Oポートからの受信通知コールバック
    189  */
    190 void
    191 rx630_uart_irdy_rcv(intptr_t exinf)
    192 {
    193         /* 共通部(syssvc\serial.c)にあるsio_irdy_rcv関数を呼び出し*/
    194         sio_irdy_rcv(exinf);
    195 }
    196 
     257void
     258mbed_serial_irq_handler(uint32_t siopid, SerialIrq event)
     259{
     260        SIOPCB  *p_siopcb;
     261
     262        if ((siopid <= 0) || (siopid > (sizeof(siopcb_table) / sizeof(siopcb_table[0]))))
     263                return;
     264        p_siopcb = get_siopcb(siopid);
     265
     266        if (!p_siopcb->openflag)
     267                return;
     268
     269        switch (event) {
     270        case TxIrq:
     271                serial_irdy_snd(p_siopcb);
     272                break;
     273        case RxIrq:
     274                serial_irdy_rcv(p_siopcb);
     275                break;
     276        }
     277}
  • asp3_tinet_ecnl_rx/trunk/asp3_dcre/target/gr_sakura_gcc/target_serial.cfg

    r337 r374  
    44
    55#include <target_serial.h>
     6
    67ATT_INI({ TA_NULL, 0, sio_initialize });
    7 CFG_INT(INTNO_SIO_TX, { INTATR_SIO, INTPRI_SIO });
    8 CFG_INT(INTNO_SIO_RX, { INTATR_SIO, INTPRI_SIO });
    98
    10 CRE_ISR(INTNO_SIO_TX_ISR, {TA_NULL, SIO_PORTID, INTNO_SIO_TX, sio_tx_isr, 1});
    11 CRE_ISR(INTNO_SIO_RX_ISR, {TA_NULL, SIO_PORTID, INTNO_SIO_RX, sio_rx_isr, 1});
  • asp3_tinet_ecnl_rx/trunk/asp3_dcre/target/gr_sakura_gcc/target_serial.h

    r337 r374  
    5353
    5454#include "gr_sakura.h"
    55 #include "rx630_uart.h"
     55#include "serial_api.h"
    5656
    57 /*
    58  *  SIOの割込みハンドラのベクタ番号
    59  */
    60 #define INHNO_SIO_TX    INT_SCI0_TEI                    /* 割込みハンドラ番号 */
    61 #define INTNO_SIO_TX    INT_SCI0_TEI                    /* 割込み番号 */
    62 #define INHNO_SIO_RX    INT_SCI0_RXI                    /* 割込みハンドラ番号 */
    63 #define INTNO_SIO_RX    INT_SCI0_RXI                    /* 割込み番号 */
    64 #define INTPRI_SIO              -4                                              /* 割込み優先度 */
    65 #define INTATR_SIO              (TA_NULL)                               /* 割込み属性 */
     57#define SIO_RDY_SND 1
     58#define SIO_RDY_RCV 2
    6659
    6760#ifndef TOPPERS_MACRO_ONLY
    6861
     62typedef struct sio_port_control_block SIOPCB;
    6963
    7064/*
     
    8276 */
    8377extern void             sio_cls_por(SIOPCB *p_siopcb);
    84 
    85 /*
    86  *  SIOの割込みハンドラ
    87  */
    88 extern void     sio_tx_isr(intptr_t exinf);
    89 extern void     sio_rx_isr(intptr_t exinf);
    9078
    9179/*
  • asp3_tinet_ecnl_rx/trunk/asp3_dcre/target/gr_sakura_gcc/target_syssvc.h

    r337 r374  
    113113
    114114/*
     115 *  使用するシリアルポートのPinName
     116 */
     117#define STDIO_UART_TX P20
     118#define STDIO_UART_RX P21
     119
     120/*
    115121 *  システムログタスク関連の定数の定義
    116122 *
  • asp3_tinet_ecnl_rx/trunk/asp3_dcre/tecsgen/MANIFEST_tecsgen_body

    r337 r374  
    11MANIFEST_tecsgen_body
     2
    23Makefile
    3 
     4tecscde
     5tecscde.rb
     6tecsgen
     7tecsgen.rb
     8tecsgen_rcov.rb
     9tecsmerge
     10tecsmerge.rb
    411cdelib/Makefile
    512cdelib/cell_plugin_dialog.rb
     
    1118cdelib/tview.rb
    1219cdelib/version.rb
    13 
    1420tecs/TECSInfo/TECSInfo.cdl
     21tecs/TECSInfo/TECSInfoAccessor.cdl
    1522tecs/TECSInfo/nTECSInfo_tArrayTypeInfo.c
    16 tecs/TECSInfo/nTECSInfo_tAttrVarInfo.c
    1723tecs/TECSInfo/nTECSInfo_tBoolTypeInfo.c
    1824tecs/TECSInfo/nTECSInfo_tCallInfo.c
     
    2834tecs/TECSInfo/nTECSInfo_tParamInfo.c
    2935tecs/TECSInfo/nTECSInfo_tPtrTypeInfo.c
     36tecs/TECSInfo/nTECSInfo_tRawEntryDescriptorInfo.c
    3037tecs/TECSInfo/nTECSInfo_tRegionInfo.c
    3138tecs/TECSInfo/nTECSInfo_tSignatureInfo.c
    3239tecs/TECSInfo/nTECSInfo_tStructTypeInfo.c
     40tecs/TECSInfo/nTECSInfo_tTECSInfoAccessor.c
    3341tecs/TECSInfo/nTECSInfo_tTECSInfoSub.c
    3442tecs/TECSInfo/nTECSInfo_tTECSInfo_inline.h
     
    3644tecs/TECSInfo/nTECSInfo_tVarDeclInfo.c
    3745tecs/TECSInfo/nTECSInfo_tVoidTypeInfo.c
     46tecs/TECSInfo/tTECSInfoAccessor.c
    3847tecs/TLSFMalloc/README-TLSF.txt
    3948tecs/TLSFMalloc/tTLSFMalloc.cdl
     
    6170tecs/mruby/nMruby_tMruby.c
    6271tecs/mruby/nMruby_tMrubyCyclicTaskBody.c
     72tecs/mruby/nMruby_tMrubyProc.c
    6373tecs/mruby/nMruby_tMrubyTaskBody.c
    6474tecs/mruby/nMruby_tMrubyVM.c
     
    8797tecs/rpc/tDataqueueAdaptor_inline.h
    8898tecs/rpc/tDataqueueOWChannel.cdl
     99tecs/rpc/tMessageBufferCEP.cdl
     100tecs/rpc/tMessageBufferCEP_inline.h
     101tecs/rpc/tMessageBufferChannel.cdl
    89102tecs/rpc/tNBOTDR_inline.h
    90103tecs/rpc/tPPAllocator.c
     
    105118tecs/tecs.h
    106119tecs/tecs.xsd
    107 
    108 tecscde
    109 tecscde.rb
    110 tecsgen
    111 tecsgen.rb
    112 tecsgen_rcov
    113 tecsgen_rcov.rb
    114120tecslib/core/C_parser.tab.rb
    115121tecslib/core/C_parser.y.rb
     
    132138tecslib/core/tool_info.rb
    133139tecslib/core/types.rb
     140tecslib/core/unjoin_plugin.rb
    134141tecslib/core/value.rb
    135142tecslib/messages/messages_console_en_US.rb
     
    165172tecslib/plugin/HRP2SemaphorePlugin.rb
    166173tecslib/plugin/HRP2TaskPlugin.rb
     174tecslib/plugin/HRPHandlerPlugin.rb
     175tecslib/plugin/HRPKernelObjectManager.rb
     176tecslib/plugin/HRPKernelObjectPlugin.rb
     177tecslib/plugin/HRPObjectPlugin.rb
     178tecslib/plugin/HRPPlugin.rb
     179tecslib/plugin/HRPRPCPlugin.rb
     180tecslib/plugin/HRPSVCPlugin.rb
     181tecslib/plugin/HRPTaskPlugin.rb
    167182tecslib/plugin/Mruby2CBridgePlugin.rb
    168183tecslib/plugin/MrubyBridgeCellPlugin.rb
    169184tecslib/plugin/MrubyBridgeCelltypePlugin.rb
     185tecslib/plugin/MrubyBridgeCompositePlugin.rb
    170186tecslib/plugin/MrubyBridgePlugin.rb
    171187tecslib/plugin/MrubyBridgeSignaturePlugin.rb
     
    175191tecslib/plugin/OpaqueRPCPlugin.rb
    176192tecslib/plugin/RPCPlugin.rb
     193tecslib/plugin/RepeatCellPlugin.rb
     194tecslib/plugin/RepeatJoinPlugin.rb
    177195tecslib/plugin/SharedOpaqueRPCPlugin.rb
    178196tecslib/plugin/SharedRPCPlugin.rb
     
    186204tecslib/plugin/lib/GenParamCopy.rb
    187205tecslib/plugin/lib/GenTransparentMarshaler.rb
     206tecslib/plugin/lib/MrubyBridgeCelltypePluginModule.rb
    188207tecslib/version.rb
    189 
    190 tecsmerge
    191 tecsmerge.rb
  • asp3_tinet_ecnl_rx/trunk/asp3_dcre/tecsgen/tecs/mruby/TECSPointer.h

    r359 r374  
    102102        {                                                                                                                                       \
    103103                if( sizeof( type ) > sizeof( mrb_int ) ){                                               \
    104                         if( val >= (((type)1) << (sizeof(mrb_int)*8-1))                         \
    105                                 || val < -(((type)1) << (sizeof(mrb_int)*8-1)) )                \
     104                        if( val > TYPE ## _MAX                          \
     105                                || val < TYPE ## _MIN )         \
    106106                                /* '=' unecessary for negative value    */                              \
    107107                                /* ignore warning on int32_t */                                                 \
     
    126126        {                                                                                                                                       \
    127127                if( sizeof( type ) > sizeof( mrb_int ) ){                                               \
    128                         if( val >= (((type)1) << (sizeof(mrb_int)*8)))                          \
     128      if( val > TYPE ## _MAX )                        \
    129129                                /* '=' unecessary for negative value    */                              \
    130130                                /* ignore warning on int32_t */                                                 \
  • asp3_tinet_ecnl_rx/trunk/asp3_dcre/tecsgen/tecs/mruby/mrubyVMs.cdl

    r359 r374  
    3737
    3838/*
    39  * tools/mruby/mruby.c から cInit_initializeBridge( mrb ) を呼び出すように変更したもの
     39 * POSIX 環境用の VM
     40 * mrbgems の mrbgems/mruby-bin-mruby/tools/mruby/mruby.c を参考に作成したもの
    4041 */
    4142namespace nMruby{
  • asp3_tinet_ecnl_rx/trunk/asp3_dcre/tecsgen/tecs/mruby/tecs_mruby.h

    r359 r374  
    11/*
    2  *  Copyright (C) 2008-2017 by TOPPERS Project
     2 *  Copyright (C) 2008-2019 by TOPPERS Project
    33 *
    44 *  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     
    4646#include "mruby/irep.h"
    4747#include "mruby/dump.h"
     48#include "mruby/proc.h"
    4849
    4950#include "TECSPointer.h"
    5051#include "TECSStruct.h"
    5152
    52 #if  ! defined( MRUBY_RELEASE_MAJOR ) || MRUBY_RELEASE_MAJOR == 1 && MRUBY_RELEASE_MINOR < 2
    53 #ifndef MRB_ARGS_REQ
    54 #define MRB_ARGS_REQ(n)     ARGS_REQ(n)
    55 #define MRB_ARGS_OPT(n)     ARGS_OPT(n)
    56 #define MRB_ARGS_ARG(n1,n2) ARGS_ARG(n1,n2)
    57 #define MRB_ARGS_REST()     ARGS_REST()
    58 #define MRB_ARGS_POST(n)    ARGS_POST(n)
    59 #define MRB_ARGS_KEY(n1,n2) ARGS_KEY(n1,n2)
    60 #define MRB_ARGS_BLOCK()    ARGS_BLOCK()
    61 #define MRB_ARGS_ANY()      ARGS_ANY()
    62 #define MRB_ARGS_NONE()     ARGS_NONE()
    63 #endif /* MRB_ARGS_REQ */
    64 #endif
    6553
    66 #if  ! defined( MRUBY_RELEASE_MAJOR )
    67 #define mrb_float_value( mrb, val )  mrb_float_value( val )
    68 #endif
    69 
    70 #else
     54#else /* TECSGEN */
    7155
    7256/*
    73  * fake tecsgen because tecsgen cannot accept actual mruby.h in case of below.
     57 * fake definition because tecsgen cannot accept actual mruby.h in case of below.
    7458 *   types:   long long, long long int
    7559 *   special keyword __attribute__(x), __extension__
     
    7862typedef int mrb_irep;
    7963typedef int mrb_context;
    80 struct  RClass {int dummy;};
    81 struct  RProc  {int dummy;};
     64struct  RClass {uint32_t gcnext;};  // actual definition: struct RBasic *gcnext
     65struct  RProc  {uint32_t gcnext;};  // actual definition: struct RBasic *gcnext
    8266
    8367typedef int CELLCB;
     68
     69#define GET_SET_BOOL( Type, type )
     70#define GET_SET_CHAR( Type, type )
     71#define GET_SET_INT( Type, type )
     72#define GET_SET_FLOAT( Type, type )
     73#define POINTER_CLASS( Type, type )
     74#define CHECK_AND_GET_POINTER( Type, type )
    8475
    8576#endif /* TECSGEN */
  • asp3_tinet_ecnl_rx/trunk/asp3_dcre/tecsgen/tecs/rpc/TDR.cdl

    r337 r374  
    6868        ER      sendSOP( [in]bool_t b_client );     /* StartOfPacket magic を送信 */
    6969        ER      receiveSOP( [in]bool_t b_client );  /* StartOfPacket magic を受信 */
    70                                                  /* b_client: クライアント側なら true, サーバー側なら false */
    71 
    72         /* マジックコードの送受信 */
    73         //      ER      sendSHSOP( [in]bool_t b_client );     /* StartOfPacket magic を送信 */
    74         //      ER      receiveSHSOP( [in]bool_t b_client );  /* StartOfPacket magic を受信 */
    7570                                                 /* b_client: クライアント側なら true, サーバー側なら false */
    7671
     
    150145};
    151146
    152 // Straight Order TECS Data Representation (Straight means no endian-conversion is done)
     147// Straight Byte Order TECS Data Representation (Data are always sent in native endian)
    153148celltype tTDR {
    154149        call    sChannel        cChannel;
  • asp3_tinet_ecnl_rx/trunk/asp3_dcre/tecsgen/tecs/rpc/sChannel.cdl

    r337 r374  
    5858};
    5959
     60/*
     61 * size に uint16_t ではなく int16_t を用いるのは、下位層が ER_INT を返す場合を想定したもの.
     62 *
     63 * sChannel は TECS RPC の TDR の下位層である通信チャンネルとのインタフェースである.
     64 * 通信チャンネルは、高水準 I/O のように、バッファリングされることを想定する.
     65 * TDR からは、int8_t, int16_t, int32_t, int64_t, (int128_t), float32_t, double64_t bool_t, char_t のような基本型(無符号を含む)が渡される。
     66 * 配列や構造体の場合であっても要素ごとに渡される。
     67 */
  • asp3_tinet_ecnl_rx/trunk/asp3_dcre/tecsgen/tecs/rpc/tTDR_inline.h

    r337 r374  
    7575                return(E_ID);
    7676        }
     77  (void)p_cellcb;   // to avoid unused warning
    7778
    7879        syslog( LOG_INFO, "TDR: resetting channel" );
     
    102103                return(E_ID);
    103104        }
     105  (void)p_cellcb;   // to avoid unused warning
    104106
    105107        /* ここに処理本体を記述します #_TEFB_# */
     
    151153                return(E_ID);
    152154        }
     155  (void)p_cellcb;   // to avoid unused warning
    153156
    154157        /* ここに処理本体を記述します #_TEFB_# */
     
    157160#endif
    158161
    159     if( b_client )
     162  if( b_client )
    160163                p_sopMagic = &SOP_MAGIC2;
    161164        else
     
    198201                return(E_ID);
    199202        }
     203  (void)p_cellcb;   // to avoid unused warning
    200204
    201205        /* ここに処理本体を記述します #_TEFB_# */
     
    234238                return(E_ID);
    235239        }
     240  (void)p_cellcb;   // to avoid unused warning
    236241
    237242        /* ここに処理本体を記述します #_TEFB_# */
     
    267272                return(E_ID);
    268273        }
     274  (void)p_cellcb;   // to avoid unused warning
    269275
    270276        /* ここに処理本体を記述します #_TEFB_# */
     
    287293                return(E_ID);
    288294        }
     295  (void)p_cellcb;   // to avoid unused warning
    289296
    290297        /* ここに処理本体を記述します #_TEFB_# */
     
    307314                return(E_ID);
    308315        }
     316  (void)p_cellcb;   // to avoid unused warning
    309317
    310318        /* ここに処理本体を記述します #_TEFB_# */
     
    327335                return(E_ID);
    328336        }
     337  (void)p_cellcb;   // to avoid unused warning
    329338
    330339        /* ここに処理本体を記述します #_TEFB_# */
     
    347356                return(E_ID);
    348357        }
     358  (void)p_cellcb;   // to avoid unused warning
    349359
    350360        /* ここに処理本体を記述します #_TEFB_# */
     
    368378                return(E_ID);
    369379        }
     380  (void)p_cellcb;   // to avoid unused warning
    370381
    371382        /* ここに処理本体を記述します #_TEFB_# */
     
    390401                return(E_ID);
    391402        }
     403  (void)p_cellcb;   // to avoid unused warning
    392404
    393405        /* ここに処理本体を記述します #_TEFB_# */
     
    412424                return(E_ID);
    413425        }
     426  (void)p_cellcb;   // to avoid unused warning
    414427
    415428        /* ここに処理本体を記述します #_TEFB_# */
     
    434447                return(E_ID);
    435448        }
     449  (void)p_cellcb;   // to avoid unused warning
    436450
    437451        /* ここに処理本体を記述します #_TEFB_# */
     
    456470                return(E_ID);
    457471        }
     472  (void)p_cellcb;   // to avoid unused warning
    458473
    459474        /* ここに処理本体を記述します #_TEFB_# */
     
    477492                return(E_ID);
    478493        } /* end if VALID_IDX(idx) */
     494  (void)p_cellcb;   // to avoid unused warning
    479495
    480496        /* ここに処理本体を記述します #_TEFB_# */
     
    497513                return(E_ID);
    498514        } /* end if VALID_IDX(idx) */
     515  (void)p_cellcb;   // to avoid unused warning
    499516
    500517        /* ここに処理本体を記述します #_TEFB_# */
     
    517534                return(E_ID);
    518535        } /* end if VALID_IDX(idx) */
     536  (void)p_cellcb;   // to avoid unused warning
    519537
    520538        /* ここに処理本体を記述します #_TEFB_# */
     
    537555                return(E_ID);
    538556        } /* end if VALID_IDX(idx) */
     557  (void)p_cellcb;   // to avoid unused warning
    539558
    540559        /* ここに処理本体を記述します #_TEFB_# */
     
    557576                return(E_ID);
    558577        } /* end if VALID_IDX(idx) */
     578  (void)p_cellcb;   // to avoid unused warning
    559579
    560580        /* ここに処理本体を記述します #_TEFB_# */
     
    578598                return(E_ID);
    579599        } /* end if VALID_IDX(idx) */
     600  (void)p_cellcb;   // to avoid unused warning
    580601
    581602        /* ここに処理本体を記述します #_TEFB_# */
     
    600621                return(E_ID);
    601622        } /* end if VALID_IDX(idx) */
     623  (void)p_cellcb;   // to avoid unused warning
    602624
    603625        /* ここに処理本体を記述します #_TEFB_# */
     
    622644                return(E_ID);
    623645        } /* end if VALID_IDX(idx) */
     646  (void)p_cellcb;   // to avoid unused warning
    624647
    625648        /* ここに処理本体を記述します #_TEFB_# */
     
    644667                return(E_ID);
    645668        } /* end if VALID_IDX(idx) */
     669  (void)p_cellcb;   // to avoid unused warning
    646670
    647671        /* ここに処理本体を記述します #_TEFB_# */
     
    666690                return(E_ID);
    667691        } /* end if VALID_IDX(idx) */
     692  (void)p_cellcb;   // to avoid unused warning
    668693
    669694        /* ここに処理本体を記述します #_TEFB_# */
     
    688713                return(E_ID);
    689714        } /* end if VALID_IDX(idx) */
     715  (void)p_cellcb;   // to avoid unused warning
    690716
    691717        /* ここに処理本体を記述します #_TEFB_# */
     
    705731        ER              ercd = E_OK;
    706732        CELLCB  *p_cellcb;
    707         uint8_t val;
    708         if (VALID_IDX(idx)) {
    709                 p_cellcb = GET_CELLCB(idx);
    710         }
    711         else {
    712                 return(E_ID);
    713         } /* end if VALID_IDX(idx) */
     733        uint8_t val = 0;
     734        if (VALID_IDX(idx)) {
     735                p_cellcb = GET_CELLCB(idx);
     736        }
     737        else {
     738                return(E_ID);
     739        } /* end if VALID_IDX(idx) */
     740  (void)p_cellcb;   // to avoid unused warning
    714741
    715742        /* ここに処理本体を記述します #_TEFB_# */
     
    737764                return(E_ID);
    738765        }
     766  (void)p_cellcb;   // to avoid unused warning
    739767
    740768        /* ここに処理本体を記述します #_TEFB_# */
     
    757785                return(E_ID);
    758786        }
     787  (void)p_cellcb;   // to avoid unused warning
    759788
    760789        /* ここに処理本体を記述します #_TEFB_# */
     
    778807                return(E_ID);
    779808        }
     809  (void)p_cellcb;   // to avoid unused warning
    780810
    781811        /* ここに処理本体を記述します #_TEFB_# */
     
    800830                return(E_ID);
    801831        }
     832  (void)p_cellcb;   // to avoid unused warning
    802833
    803834        /* ここに処理本体を記述します #_TEFB_# */
     
    821852                return(E_ID);
    822853        }
     854  (void)p_cellcb;   // to avoid unused warning
    823855
    824856        /* ここに処理本体を記述します #_TEFB_# */
     
    863895                return(E_ID);
    864896        } /* end if VALID_IDX(idx) */
     897  (void)p_cellcb;   // to avoid unused warning
    865898
    866899        /* ここに処理本体を記述します #_TEFB_# */
     
    883916                return(E_ID);
    884917        }
     918  (void)p_cellcb;   // to avoid unused warning
    885919
    886920        /* ここに処理本体を記述します #_TEFB_# */
     
    903937                return(E_ID);
    904938        }
     939  (void)p_cellcb;   // to avoid unused warning
    905940
    906941        /* ここに処理本体を記述します #_TEFB_# */
     
    923958                return(E_ID);
    924959        }
     960  (void)p_cellcb;   // to avoid unused warning
    925961
    926962        /* ここに処理本体を記述します #_TEFB_# */
     
    944980                return(E_ID);
    945981        } /* end if VALID_IDX(idx) */
     982  (void)p_cellcb;   // to avoid unused warning
    946983
    947984        /* ここに処理本体を記述します #_TEFB_# */
     
    9661003                return(E_ID);
    9671004        }
     1005  (void)p_cellcb;   // to avoid unused warning
    9681006
    9691007        /* ここに処理本体を記述します #_TEFB_# */
     
    9881026                return(E_ID);
    9891027        }
     1028  (void)p_cellcb;   // to avoid unused warning
    9901029
    9911030        /* ここに処理本体を記述します #_TEFB_# */
     
    10101049                return(E_ID);
    10111050        }
     1051  (void)p_cellcb;   // to avoid unused warning
    10121052
    10131053        /* ここに処理本体を記述します #_TEFB_# */
     
    10311071                return(E_ID);
    10321072        } /* end if VALID_IDX(idx) */
     1073  (void)p_cellcb;   // to avoid unused warning
    10331074
    10341075        /* ここに処理本体を記述します #_TEFB_# */
     
    10511092                return(E_ID);
    10521093        } /* end if VALID_IDX(idx) */
     1094  (void)p_cellcb;   // to avoid unused warning
    10531095
    10541096        /* ここに処理本体を記述します #_TEFB_# */
     
    10711113                return(E_ID);
    10721114        } /* end if VALID_IDX(idx) */
     1115  (void)p_cellcb;   // to avoid unused warning
    10731116
    10741117        /* ここに処理本体を記述します #_TEFB_# */
     
    10911134                return(E_ID);
    10921135        } /* end if VALID_IDX(idx) */
     1136  (void)p_cellcb;   // to avoid unused warning
    10931137
    10941138        /* ここに処理本体を記述します #_TEFB_# */
     
    11121156                return(E_ID);
    11131157        } /* end if VALID_IDX(idx) */
     1158  (void)p_cellcb;   // to avoid unused warning
    11141159
    11151160        /* ここに処理本体を記述します #_TEFB_# */
     
    11341179                return(E_ID);
    11351180        } /* end if VALID_IDX(idx) */
     1181  (void)p_cellcb;   // to avoid unused warning
    11361182
    11371183        /* ここに処理本体を記述します #_TEFB_# */
     
    11561202                return(E_ID);
    11571203        } /* end if VALID_IDX(idx) */
     1204  (void)p_cellcb;   // to avoid unused warning
    11581205
    11591206        /* ここに処理本体を記述します #_TEFB_# */
     
    11781225                return(E_ID);
    11791226        } /* end if VALID_IDX(idx) */
     1227  (void)p_cellcb;   // to avoid unused warning
    11801228
    11811229        /* ここに処理本体を記述します #_TEFB_# */
     
    11991247                return(E_ID);
    12001248        }
     1249  (void)p_cellcb;   // to avoid unused warning
    12011250
    12021251        /* ここに処理本体を記述します #_TEFB_# */
     
    12201269                return(E_ID);
    12211270        }
     1271  (void)p_cellcb;   // to avoid unused warning
    12221272
    12231273        /* ここに処理本体を記述します #_TEFB_# */
  • asp3_tinet_ecnl_rx/trunk/asp3_dcre/tecsgen/tecsgen.rb

    r359 r374  
    55#      Generator for TOPPERS Embedded Component System
    66
    7 #   Copyright (C) 2008-2017 by TOPPERS Project
     7#   Copyright (C) 2008-2019 by TOPPERS Project
    88#--
    99#   上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     
    5454#  Authors list is in i-ro-ha order.
    5555#Version::   see version.rb
    56 $Copyright = "Copyright(c) 2008-2017, TOPPERS project. All rights reserved."
     56$Copyright = "Copyright(c) 2008-2019, TOPPERS project. All rights reserved."
    5757$License   = "TOPPERS License"
    5858
     
    223223    analyze_option addtional_option_parser
    224224    load_modules
    225     setup
     225    if ! $TECSFLOW then
     226      setup
     227    end
    226228       
    227229    dbgPrint  "tecspath: #{$tecsgen_base_path}, __FILE__=#{__FILE__}\n"
     
    284286    ARGV.each { |a| $arguments += " " + a }
    285287
    286     $unopt     = false     # bool:   disable optimizing
     288    $unopt     = false     # bool:   disable optimizing both call and entry port
     289    $unopt_entry= false    # bool:   disable optimizing entry port
    287290    $gen_base  = "gen"     # string: folder path to place generated files
    288291    $gen       = $gen_base # string: folder path to place generated files
     
    385388        $unopt = true
    386389      }
     390      parser.on('--unoptimize-entry', 'unoptimize entry port') {
     391        $unopt_entry = true
     392      }
    387393      parser.on('-c', '--cpp=cpp_cmd', 'C pre-processor command used import_C (default: gcc -E -DTECSGEN), you can also specify by environment variable TECS_CPP' ){
    388394        |arg|
     
    465471    }
    466472
    467     if ARGV.empty? && ! $print_version && ! $unit_test
     473    if ARGV.empty? && ! $print_version && ! $unit_test && ! $TECSFLOW
    468474      ARGV.options{|parser|
    469475        puts parser.help
     
    482488    # このファイルを誤って読み込むと、異なるバージョン名を表示してしまう
    483489    require_tecsgen_lib 'tecslib/version.rb'
    484     if $tecscde_version then
    485       STDERR << "tecscde version #{$tecscde_version} (tecsgen version #{$version})  #{$Copyright}\n"
     490    if $title then
     491      STDERR << "#{$title} version #{$tool_version} (tecsgen version #{$version})  #{$Copyright}\n"
    486492    elsif ! $no_banner || $print_version
    487493      STDERR << "tecsgen  version #{$version}  #{$Copyright}\n"
     
    490496      STDERR << "ruby #{RUBY_VERSION} (#{RUBY_RELEASE_DATE} patchlevel #{RUBY_PATCHLEVEL}) [#{RUBY_PLATFORM}]\n"
    491497    end
    492     if $print_version && ARGV.empty?
     498    if $print_version && ARGV.empty? && ! $TECSFLOW
    493499      exit
    494500    end
     
    518524    require_tecsgen_lib 'tecslib/core/tool_info.rb'
    519525    require_tecsgen_lib 'tecslib/core/tecsinfo.rb'
     526    require_tecsgen_lib 'tecslib/core/unjoin_plugin.rb'
    520527    require_tecsgen_lib 'tecslib/plugin/CelltypePlugin.rb'
    521528    require_tecsgen_lib 'tecslib/plugin/CompositePlugin.rb'
     
    601608#  クラス変数のリセットを確実に行う必要がある
    602609
    603 if $TECSCDE != true then
     610if $TECSCDE != true && $TECSFLOW != true then
    604611  begin
    605612    TECSGEN.init
     
    607614    tecsgen.run1
    608615    tecsgen.run2
     616    tecsgen.dump_tecsgen_rbdmp
    609617  rescue => evar
    610618    print_exception( evar )
  • asp3_tinet_ecnl_rx/trunk/asp3_dcre/tecsgen/tecsgen_rcov.rb

    r337 r374  
    4444# Usage: tecsgen_rcov.rb [options] CDL-file.cdl
    4545#
     46
     47$:.unshift(File.dirname(__FILE__))
     48
    4649require 'simplecov'
    47 SimpleCov.command_name "tecsgen#{$$}"
     50SimpleCov.command_name "tecsgen#{Time.now.to_f}"
    4851SimpleCov.root File.dirname( File.expand_path __FILE__ )
    4952SimpleCov.at_exit do
  • asp3_tinet_ecnl_rx/trunk/asp3_dcre/tecsgen/tecslib/core/C_parser.tab.rb

    r337 r374  
    11#
    22# DO NOT MODIFY!!!!
    3 # This file is automatically generated by Racc 1.4.14
     3# This file is automatically generated by Racc 1.4.9
    44# from Racc grammer file "".
    55#
     
    88class C_parser < Racc::Parser
    99
    10 module_eval(<<'...end C_parser.y.rb/module_eval...', 'C_parser.y.rb', 727)
    11 
    12   RESERVED = {
    13     # keyword
    14     'typedef' => :TYPEDEF,
    15     'struct' => :STRUCT,
    16     'union' => :UNION,
    17     'sizeof' => :SIZEOF,
    18     'throw' => :THROW,
    19 
    20     # specifier
    21     # types
    22     'void'    => :VOID,
    23     'char'    => :CHAR,
    24     'short'   => :SHORT,
    25 
    26     'volatile'=> :VOLATILE,
    27     'const'   => :CONST,
    28     'extern'   => :EXTERN,
    29 
    30     'long'    => :LONG,
    31     'float'   => :FLOAT,
    32     'double'  => :DOUBLE,
    33     'signed'  => :SIGNED,
    34     'unsigned'=> :UNSIGNED,
    35 
    36     'int'     => :INT,
    37     'enum'    => :ENUM,
    38 
    39     'if'      => :IF,
    40     'else'    => :ELSE,
    41     'while'   => :WHILE,
    42     'do'      => :DO,
    43     'for'     => :FOR,
    44     'case'    => :CASE,
    45     'default' => :DEFAULT,
    46     'goto'    => :GOTO,
    47     'continue' => :CONTINUE,
    48     'break'   => :BREAK,
    49     'return'  => :RETURN,
    50     '__inline__'  => :__INLINE__,
    51     'inline'  => :INLINE,
    52     '__inline'  => :__INLINE,
    53     'Inline'  => :CINLINE,        # inline starting with Capital letter
    54     'static'  => :STATIC,
    55     'register' => :REGISTER,
    56     'auto'    => :AUTO,
    57     '__extension__'    => :EXTENSION,
    58 
    59   }
    60 
    61   @@generator_nest = -1
    62   @@generator_stack = []
    63   @@current_locale = []
    64 
    65   def finalize
    66 
    67     # mikan Namespace.pop
    68     Celltype.pop
    69     Cell.pop
    70     CompositeCelltype.pop
    71     Region.pop
    72 
    73   end
    74 
    75   def set_plugin( plugin )
    76     @plugin = plugin
    77   end
    78 
    79   def self.get_plugin
    80     @@generator_stack[@@generator_nest].get_plugin
    81   end
    82 
    83   def get_plugin
    84     @plugin
    85   end
    86 
    87   def parse(files)
    88 
    89     # mikan Namespace.push
    90     Celltype.push
    91     Cell.push
    92     CompositeCelltype.push
    93     Region.push
    94 
    95     @@generator_nest += 1
    96     @@generator_stack[@@generator_nest] = self
    97     @b_no_type_name = false
    98 
    99    begin
    100 
    101     @q = []
    102     comment = false
    103 
    104     # euc のコメントを utf8 として扱うと、コメントの終わりを誤る問題の対策
    105     TECS_LANG::set_kcode_binary
    106 
    107     # 800U, 0xffLL など (整数リテラルに共通の修飾子)
    108     integer_qualifier = "([Uu][Ll][Ll]|[Uu][Ll]|[Uu]|[Ll][Ll]|[Ll])?"
    109 
    110     files.each {|file|
    111       lineno = 1
    112      begin
    113 #2.0       IO.foreach(file) {|line|
    114        TECSIO.foreach(file) {|line|
    115         col = 1
    116         line.rstrip!
    117 
    118         until line.empty?
    119 
    120           if comment
    121             case line
    122             # コメント終了
    123             when /\A\*\//
    124               comment = false
    125             when /\A./
    126               ;
    127             end
    128           else
    129             case line
    130             # 空白、プリプロセスディレクティブ
    131             when /\A\s+/
    132               ;
    133             # 識別子
    134             when /\A[a-zA-Z_]\w*/
    135               word = $&
    136               @q << [RESERVED[word] || :IDENTIFIER, Token.new(word.intern, file, lineno, col)]
    137             # 16 進数定数
    138             when /\A0x[0-9A-Fa-f]+#{integer_qualifier}/
    139               @q << [:HEX_CONSTANT, Token.new($&, file, lineno, col)]
    140             # 8 進数定数
    141             when /\A0[0-7]+#{integer_qualifier}/
    142               @q << [:OCTAL_CONSTANT, Token.new($&, file, lineno, col)]
    143             # 浮動小数定数
    144             when /\A[0-9]+\.([0-9]*)?([Ee][+-]?[0-9]+)?/
    145               @q << [:FLOATING_CONSTANT, Token.new($&, file, lineno, col)]
    146             # 整数定数
    147             when /\A\d+#{integer_qualifier}/
    148             # when /\A\d+/
    149               @q << [:INTEGER_CONSTANT, Token.new($&.to_i, file, lineno, col)]
    150             # 文字
    151             when /\A'(?:[^'\\]|\\.)'/
    152               @q << [:CHARACTER_LITERAL, Token.new($&, file, lineno, col)]
    153             # 文字列
    154 #              "#include  #include #include \"../systask/logtask.cfg\"       最後の " 忘れ)で無限ループ
    155 #            when /\A"(?:[^"\\]+|\\.)*"/
    156             when /\A"(?:[^"\\]|\\.)*"/   # これはうまく行くようだ
    157               @q << [:STRING_LITERAL, Token.new($&, file, lineno, col)]
    158             # 行コメント
    159             when /\A\/\/.*$/
    160               # 読み飛ばすだけ
    161             # コメント開始
    162             when /\A\/\*/
    163               comment = true
    164             when /\A>>=/, /\A<<=/, /\A>>/,  /\A<</
    165               @q << [$&, Token.new($&, file, lineno, col)]
    166             when /\A\+=/, /\A\-=/, /\A\*=/, /\A\/=/, /\A%=/, /\A&=/, /\A\|=/, /\A\^=/
    167               @q << [$&, Token.new($&, file, lineno, col)]
    168             when /\A::/, /\A==/, /\A!=/, /\A>=/, /\A<=/, /\A\->/, /\A\+\+/, /\A\-\-/
    169               @q << [$&, Token.new($&, file, lineno, col)]
    170             when /\A./
    171               @q << [$&, Token.new($&, file, lineno, col)]
    172             else
    173               raise
    174             end
    175           end
    176 
    177           line = $'
    178           col += $&.length
    179         end
    180 
    181         lineno += 1
    182       }
    183 
    184      rescue => evar
    185        Generator.error( "B1002 while open or reading \'$1\'" , file )
    186        print_exception( evar )
    187      end
    188     }
    189 
    190     # 終了の印
    191     @q << nil
    192 
    193     @yydebug = true
    194     do_parse
    195 
    196    ensure
    197     @@generator_nest -= 1
    198     TECS_LANG::reset_kcode
    199    end
    200 
    201   end
    202 
    203 
    204   def next_token
    205     token = @q.shift
    206 
    207     if token then
    208       @@current_locale[@@generator_nest] = token[1].locale
    209 
    210       case token[1].val
    211       when ";", ":", ",", "(", ")", "{", "}"
    212         set_no_type_name false
    213       when ".", "->"
    214         set_no_type_name true
    215       end
    216 
    217       # TYPE_NAME トークンへ置き換え
    218       if @b_no_type_name == false
    219         if token[0] == :IDENTIFIER && Namespace.is_typename?( token[1].val ) then
    220           token[0] = :TYPE_NAME
    221           locale = @@current_locale[@@generator_nest]
     10module_eval(<<'...end C_parser.y.rb/module_eval...', 'C_parser.y.rb', 784)
     11
     12        RESERVED = {
     13                # keyword
     14                'typedef' => :TYPEDEF,
     15                'struct' => :STRUCT,
     16                'union' => :UNION,
     17                'sizeof' => :SIZEOF,
     18                'throw' => :THROW,
     19
     20                # specifier
     21                # types
     22                'void'    => :VOID,
     23                'char'    => :CHAR,
     24                'short'   => :SHORT,
     25
     26                'volatile'=> :VOLATILE,
     27                'restrict'=> :RESTRICT,
     28                'const'   => :CONST,
     29                'extern'   => :EXTERN,
     30
     31                'long'    => :LONG,
     32                'float'   => :FLOAT,
     33                'double'  => :DOUBLE,
     34                'signed'  => :SIGNED,
     35                'unsigned'=> :UNSIGNED,
     36
     37                'int'     => :INT,
     38                'enum'    => :ENUM,
     39
     40                'if'      => :IF,
     41                'else'    => :ELSE,
     42                'while'   => :WHILE,
     43                'do'      => :DO,
     44                'for'     => :FOR,
     45                'switch'  => :SWITCH,
     46                'case'    => :CASE,
     47                'default' => :DEFAULT,
     48                'goto'    => :GOTO,
     49                'continue' => :CONTINUE,
     50                'break'   => :BREAK,
     51                'return'  => :RETURN,
     52                '__inline__'  => :__INLINE__,
     53                'inline'  => :INLINE,
     54                '__inline'  => :__INLINE,
     55                'Inline'  => :CINLINE,        # inline starting with Capital letter
     56                'static'  => :STATIC,
     57                'register' => :REGISTER,
     58                'auto'    => :AUTO,
     59                '__extension__'    => :EXTENSION,
     60                '__asm__' => :_ASM,
     61                'asm' =>     :_ASM
     62
     63        }
     64
     65        @@generator_nest = -1
     66        @@generator_stack = []
     67        @@current_locale = []
     68
     69        def finalize
     70
     71                # mikan Namespace.pop
     72                Celltype.pop
     73                Cell.pop
     74                CompositeCelltype.pop
     75                Region.pop
     76
     77        end
     78
     79        def set_plugin( plugin )
     80                @plugin = plugin
     81        end
     82
     83        def self.get_plugin
     84                @@generator_stack[@@generator_nest].get_plugin
     85        end
     86
     87        def get_plugin
     88                @plugin
     89        end
     90
     91        def parse(files)
     92
     93                # mikan Namespace.push
     94                Celltype.push
     95                Cell.push
     96                CompositeCelltype.push
     97                Region.push
     98
     99                @@generator_nest += 1
     100                @@generator_stack[@@generator_nest] = self
     101                @b_no_type_name = false
     102
     103        begin
     104
     105                @q = []
     106                comment = false
     107#               b_asm   = false
     108
     109                # euc のコメントを utf8 として扱うと、コメントの終わりを誤る問題の対策
     110                TECS_LANG::set_kcode_binary
     111
     112                # 800U, 0xffLL など (整数リテラルに共通の修飾子)
     113                integer_qualifier = "([Uu][Ll][Ll]|[Uu][Ll]|[Uu]|[Ll][Ll]|[Ll])?"
     114
     115                files.each {|file|
     116                        lineno = 1
     117                begin
     118#2.0            IO.foreach(file) {|line|
     119                        TECSIO.foreach(file) {|line|
     120                        col = 1
     121                        line.rstrip!
     122
     123                        until line.empty?
     124
     125                                if comment
     126                                        case line
     127                                        # コメント終了
     128                                        when /\A\*\//
     129                                                comment = false
     130                                        when /\A./
     131                                                ;
     132                                        end
     133                                else
     134                                        case line
     135                                        # 空白、プリプロセスディレクティブ
     136                                        when /\A\s+/
     137                                                ;
     138                                        # 識別子
     139                                        when /\A[a-zA-Z_]\w*/
     140                                                word = $&
     141                                                @q << [RESERVED[word] || :IDENTIFIER, Token.new(word.intern, file, lineno, col)]
     142                                        # 16 進数定数
     143                                        when /\A0x[0-9A-Fa-f]+#{integer_qualifier}/
     144                                                @q << [:HEX_CONSTANT, Token.new($&, file, lineno, col)]
     145                                        # 8 進数定数
     146                                        when /\A0[0-7]+#{integer_qualifier}/
     147                                                @q << [:OCTAL_CONSTANT, Token.new($&, file, lineno, col)]
     148                                        # 浮動小数定数
     149                                        when /\A[0-9]+\.([0-9]*)?([Ee][+-]?[0-9]+)?/
     150                                                @q << [:FLOATING_CONSTANT, Token.new($&, file, lineno, col)]
     151                                        # 整数定数
     152                                        when /\A\d+#{integer_qualifier}/
     153                                        # when /\A\d+/
     154                                                @q << [:INTEGER_CONSTANT, Token.new($&.to_i, file, lineno, col)]
     155                                        # 文字
     156                                        when /\A'(?:[^'\\]|\\.)'/
     157                                                @q << [:CHARACTER_LITERAL, Token.new($&, file, lineno, col)]
     158                                        # 文字列
     159#                                       "#include  #include #include \"../systask/logtask.cfg\"       最後の " 忘れ)で無限ループ
     160#                                       when /\A"(?:[^"\\]+|\\.)*"/
     161                                        when /\A"(?:[^"\\]|\\.)*"/   # これはうまく行くようだ
     162                                                @q << [:STRING_LITERAL, Token.new($&, file, lineno, col)]
     163                                        # 行コメント
     164                                        when /\A\/\/.*$/
     165                                                # 読み飛ばすだけ
     166                                        # コメント開始
     167                                        when /\A\/\*/
     168                                                comment = true
     169                                        when /\A>>=/, /\A<<=/, /\A>>/,  /\A<</
     170                                                @q << [$&, Token.new($&, file, lineno, col)]
     171                                        when /\A\+=/, /\A\-=/, /\A\*=/, /\A\/=/, /\A%=/, /\A&=/, /\A\|=/, /\A\^=/
     172                                                @q << [$&, Token.new($&, file, lineno, col)]
     173                                        when /\A::/, /\A==/, /\A!=/, /\A>=/, /\A<=/, /\A\->/, /\A\+\+/, /\A\-\-/
     174                                                @q << [$&, Token.new($&, file, lineno, col)]
     175                                        when /\A\|\|/, /\A\&\&/
     176                                                @q << [$&, Token.new($&, file, lineno, col)]
     177                                        when /\A./
     178                                                @q << [$&, Token.new($&, file, lineno, col)]
     179                                        else
     180                                                raise
     181                                        end
     182                                end
     183
     184                                line = $'
     185                                col += $&.length
     186                        end
     187
     188                        lineno += 1
     189                }
     190
     191                rescue => evar
     192                        Generator.error( "B1002 while open or reading \'$1\'" , file )
     193                        print_exception( evar )
     194                end
     195        }
     196
     197        # 終了の印
     198        @q << nil
     199
     200        @yydebug = true
     201        do_parse
     202
     203                ensure
     204                        @@generator_nest -= 1
     205                        TECS_LANG::reset_kcode
     206                end
     207
     208        end
     209
     210
     211        def next_token
     212                token = @q.shift
     213
     214                if token then
     215                        @@current_locale[@@generator_nest] = token[1].locale
     216
     217                        case token[1].val
     218                        when ";", ":", ",", "(", ")", "{", "}"
     219                        set_no_type_name false
     220                        when ".", "->"
     221                        set_no_type_name true
     222                        end
     223
     224                        # TYPE_NAME トークンへ置き換え
     225                        if @b_no_type_name == false
     226                                if token[0] == :IDENTIFIER && Namespace.is_typename?( token[1].val ) then
     227                                        token[0] = :TYPE_NAME
     228                                        locale = @@current_locale[@@generator_nest]
    222229#print( "#{locale[0]}: line #{locale[1]} : #{token[0]} '#{token[1].val}: type_name'\n" )
    223         end
    224       end
    225 
    226       if $debug then     # 070107 token 無効時ここを通さないようした (through 対応 -d の時に例外発生)
    227         locale = @@current_locale[@@generator_nest]
    228         if token then
    229           print( "#{locale[0]}: line #{locale[1]} : #{token[0]} '#{token[1].val}'\n" )
    230         else
    231           print( "#{locale[0]}: line #{locale[1]} : EOF\n" )
    232         end
    233       end
    234     end
    235 
    236     token
    237   end
    238 
    239   def on_error(t, v, vstack)
    240     if v == "$" then
    241      Generator.error( "B1003 Unexpected EOF"  )
    242     else
    243      Generator.error( "B1004 syntax error near \'$1\'" , v.val )
    244     end
    245 
    246   end
    247 
    248   def self.current_locale
    249     @@current_locale[ @@generator_nest ]
    250   end
    251 
    252   @@n_error = 0
    253   @@n_warning = 0
    254   @@n_info = 0
    255 
    256   # このメソッドは構文解析、意味解析からのみ呼出し可(コード生成でエラー発生は不適切)
    257   def self.error( msg )
    258     @@n_error += 1
    259     locale = @@current_locale[ @@generator_nest ]
    260 
    261     if locale then
    262       Console.puts "error: #{locale[0]}: line #{locale[1]} #{msg}"
    263     else
    264       Console.puts "error: #{msg}"
    265     end
    266   end
    267 
    268   # このメソッドは構文解析、意味解析からのみ呼出し可(コード生成でウォーニング発生は不適切)
    269   def self.warning( msg )
    270     @@n_warning += 1
    271     locale = @@current_locale[ @@generator_nest ]
    272     Console.puts "warning: #{locale[0]}: line #{locale[1]} #{msg}"
    273   end
    274 
    275   # このメソッドは構文解析、意味解析からのみ呼出し可
    276   def self.info( msg )
    277     @@n_info += 1
    278     locale = @@current_locale[ @@generator_nest ]
    279     Console.puts "info: #{locale[0]}: line #{locale[1]} #{msg}"
    280   end
    281 
    282   def self.get_n_error
    283     @@n_error
    284   end
    285 
    286   def self.get_n_warning
    287     @@n_warning
    288   end
    289 
    290   def self.get_nest
    291     @@generator_nest
    292   end
    293 
    294   def set_no_type_name b_no_type_name
    295     locale = @@current_locale[ @@generator_nest ]
     230                                end
     231                        end
     232
     233                        if $debug then     # 070107 token 無効時ここを通さないようした (through 対応 -d の時に例外発生)
     234                                locale = @@current_locale[@@generator_nest]
     235                                if token then
     236                                        print( "#{locale[0]}: line #{locale[1]} : #{token[0]} '#{token[1].val}'\n" )
     237                                else
     238                                        print( "#{locale[0]}: line #{locale[1]} : EOF\n" )
     239                                end
     240                        end
     241                end
     242
     243                token
     244        end
     245
     246        def on_error(t, v, vstack)
     247                if v == "$" then
     248                        Generator.error( "B1003 Unexpected EOF"  )
     249                else
     250                        Generator.error( "B1004 syntax error near \'$1\'" , v.val )
     251                end
     252
     253        end
     254
     255        def self.current_locale
     256                @@current_locale[ @@generator_nest ]
     257        end
     258
     259        @@n_error = 0
     260        @@n_warning = 0
     261        @@n_info = 0
     262
     263        # このメソッドは構文解析、意味解析からのみ呼出し可(コード生成でエラー発生は不適切)
     264        def self.error( msg )
     265                @@n_error += 1
     266                locale = @@current_locale[ @@generator_nest ]
     267
     268                if locale then
     269                        Console.puts "#{locale[0]}:#{locale[1]}: error: #{msg}"
     270                else
     271                        Console.puts "error: #{msg}"
     272                end
     273        end
     274
     275        # このメソッドは構文解析、意味解析からのみ呼出し可(コード生成でウォーニング発生は不適切)
     276        def self.warning( msg )
     277                @@n_warning += 1
     278                locale = @@current_locale[ @@generator_nest ]
     279                Console.puts "warning: #{locale[0]}: line #{locale[1]} #{msg}"
     280        end
     281
     282        # このメソッドは構文解析、意味解析からのみ呼出し可
     283        def self.info( msg )
     284                @@n_info += 1
     285                locale = @@current_locale[ @@generator_nest ]
     286                Console.puts "info: #{locale[0]}: line #{locale[1]} #{msg}"
     287        end
     288
     289        def self.get_n_error
     290                @@n_error
     291        end
     292
     293        def self.get_n_warning
     294                @@n_warning
     295        end
     296
     297        def self.get_nest
     298                @@generator_nest
     299        end
     300
     301        def set_no_type_name b_no_type_name
     302                locale = @@current_locale[ @@generator_nest ]
    296303#print "b_no_type_name=#{b_no_type_name} #{locale[0]}: line #{locale[1]}\n"
    297     @b_no_type_name = b_no_type_name
    298   end
     304                @b_no_type_name = b_no_type_name
     305        end
    299306
    300307...end C_parser.y.rb/module_eval...
     
    302309
    303310clist = [
    304 '106,107,108,109,110,112,70,113,68,181,302,143,55,118,119,208,117,120',
    305 '121,122,123,124,125,106,107,108,109,110,112,337,113,209,336,210,143',
    306 '76,118,119,170,117,120,121,122,123,124,125,305,69,301,67,350,28,29,106',
    307 '107,108,109,110,112,75,113,28,29,162,143,77,118,119,170,117,120,121',
    308 '122,123,124,125,169,79,205,206,353,306,307,308,309,310,311,312,313,314',
    309 '315,264,55,144,8,9,10,11,15,16,17,18,19,20,21,174,267,23,25,27,28,29',
    310 '197,198,375,263,144,106,107,108,109,110,112,346,113,342,197,198,143',
    311 '173,118,119,153,117,120,121,122,123,124,125,106,107,108,109,110,112',
    312 '144,113,357,341,3,143,274,118,119,253,117,120,121,122,123,124,125,106',
    313 '107,108,109,110,112,54,113,199,200,361,143,53,118,119,98,117,120,121',
    314 '122,123,124,125,106,107,108,109,110,112,345,113,363,83,364,143,82,118',
    315 '119,346,117,120,121,122,123,124,125,81,144,249,83,274,253,82,253,53',
    316 '106,107,108,109,110,112,337,113,55,336,365,236,366,118,119,144,117,120',
    317 '121,122,123,124,125,54,249,367,194,253,97,53,53,195,196,81,199,200,55',
    318 '55,144,230,89,8,9,10,11,15,16,17,18,19,20,21,79,372,23,25,27,28,29,199',
    319 '200,144,231,88,232,233,234,235,87,237,238,240,241,242,243,194,377,194',
    320 '199,200,195,196,195,196,378,39,40,41,42,43,44,45,46,144,106,107,108',
    321 '109,110,112,379,113,205,206,380,143,381,118,119,382,117,120,121,122',
    322 '123,124,125,106,107,108,109,110,112,384,113,197,198,385,143,386,118',
    323 '119,65,117,120,121,122,123,124,125,106,107,108,109,110,112,62,113,391',
    324 '37,392,143,393,118,119,394,117,120,121,122,123,124,125,106,107,108,109',
    325 '110,112,61,113,211,212,396,143,398,118,119,280,117,120,121,122,123,124',
    326 '125,47,144,279,36,277,8,9,10,11,15,16,17,18,19,20,21,271,37,23,25,27',
    327 '28,29,270,144,38,8,9,10,11,15,16,17,18,19,20,21,199,200,23,25,27,28',
    328 '29,269,97,256,144,255,39,40,41,42,43,44,45,46,36,247,8,9,10,11,15,16',
    329 '17,18,19,20,21,144,246,23,25,27,28,29,245,32,38,106,107,108,109,110',
    330 '112,216,113,215,210,209,143,208,118,119,207,117,120,121,122,123,124',
    331 '125,39,40,41,42,43,44,45,46,303,106,107,108,109,110,112,316,113,317',
    332 '319,320,236,321,118,119,323,117,120,121,122,123,124,125,54,54,54,324',
    333 '54,325,53,53,53,326,53,329,176,55,55,55,230,55,8,9,10,11,15,16,17,18',
    334 '19,20,21,79,175,23,25,27,28,29,77,97,144,231,171,232,233,234,235,163',
    335 '237,238,240,241,242,243,183,348,184,349,185,186,187,207,,,39,40,41,42',
    336 '43,44,45,46,144,106,107,108,109,110,112,,113,,,,143,,118,119,,117,120',
    337 '121,122,123,124,125,,,106,107,108,109,110,112,,113,,,,236,,118,119,',
    338 '117,120,121,122,123,124,125,54,54,54,,54,,53,53,53,,53,,,55,55,55,230',
    339 '55,8,9,10,11,15,16,17,18,19,20,21,79,,23,25,27,28,29,,,,231,,232,233',
    340 '234,235,144,237,238,240,241,242,243,201,202,203,204,201,202,203,204',
    341 ',,39,40,41,42,43,44,45,46,144,106,107,108,109,110,112,,113,,,,236,,118',
    342 '119,,117,120,121,122,123,124,125,54,201,202,203,204,,53,,,,,,,55,,,230',
    343 ',8,9,10,11,15,16,17,18,19,20,21,79,,23,25,27,28,29,,,,231,,232,233,234',
    344 '235,,237,238,240,241,242,243,,,,,,,,,,,39,40,41,42,43,44,45,46,144,106',
    345 '107,108,109,110,112,,113,,,,143,,118,119,,117,120,121,122,123,124,125',
    346 '106,107,108,109,110,112,,113,,,,143,,118,119,,117,120,121,122,123,124',
    347 '125,106,107,108,109,110,112,,113,,,,143,,118,119,,117,120,121,122,123',
    348 '124,125,106,107,108,109,110,112,,113,,,,143,,118,119,,117,120,121,122',
    349 '123,124,125,,144,,,,,,,,106,107,108,109,110,112,,113,,,,143,,118,119',
    350 '144,117,120,121,122,123,124,125,106,107,108,109,110,112,,113,,368,,143',
    351 ',118,119,144,117,120,121,122,123,124,125,,,,,,,,106,107,108,109,110',
    352 '112,,113,144,,,236,,118,119,,117,120,121,122,123,124,125,,,,,,,,,,,',
    353 ',,,,,230,144,8,9,10,11,15,16,17,18,19,20,21,79,,23,25,27,28,29,,,,231',
    354 '144,232,233,234,235,,237,238,240,241,242,243,,,,,,,,,,,39,40,41,42,43',
    355 '44,45,46,144,106,107,108,109,110,112,,113,,,,236,,118,119,,117,120,121',
    356 '122,123,124,125,,,,,,,,,,,,,,,,,230,,8,9,10,11,15,16,17,18,19,20,21',
    357 '79,,23,25,27,28,29,,,,231,,232,233,234,235,,237,238,240,241,242,243',
    358 ',,,,,,,,,,39,40,41,42,43,44,45,46,144,106,107,108,109,110,112,,113,',
    359 ',,236,,118,119,,117,120,121,122,123,124,125,,,,,,,,,,,,,,,,,230,,8,9',
    360 '10,11,15,16,17,18,19,20,21,79,,23,25,27,28,29,,,,231,,232,233,234,235',
    361 ',237,238,240,241,242,243,,,,,,,,,,,39,40,41,42,43,44,45,46,144,106,107',
    362 '108,109,110,112,,113,,,,143,,118,119,,117,120,121,122,123,124,125,106',
    363 '107,108,109,110,112,,113,,,,143,,118,119,,117,120,121,122,123,124,125',
    364 '106,107,108,109,110,112,,113,,,,143,,118,119,,117,120,121,122,123,124',
    365 '125,106,107,108,109,110,112,,113,,,,143,,118,119,,117,120,121,122,123',
    366 '124,125,,144,,,,,141,,,,,,,142,106,107,108,109,110,112,,113,,147,144',
    367 '143,,118,119,,117,120,121,122,123,124,125,106,107,108,109,110,112,,113',
    368 ',,144,143,,118,119,,117,120,121,122,123,124,125,106,107,108,109,110',
    369 '112,,113,,,144,143,,118,119,,117,120,121,122,123,124,125,106,107,108',
    370 '109,110,112,,113,,,,143,,118,119,,117,120,121,122,123,124,125,,144,',
    371 ',,,,,,106,107,108,109,110,112,,113,,,,143,,118,119,144,117,120,121,122',
    372 '123,124,125,106,107,108,109,110,112,,113,,,,143,,118,119,144,117,120',
    373 '121,122,123,124,125,106,107,108,109,110,112,,113,,,,143,,118,119,144',
    374 '117,120,121,122,123,124,125,106,107,108,109,110,112,,113,,,,143,,118',
    375 '119,,117,120,121,122,123,124,125,,144,,,,,141,351,,,,,,142,106,107,108',
    376 '109,110,112,,113,,,144,143,,118,119,,117,120,121,122,123,124,125,106',
    377 '107,108,109,110,112,,113,,,144,143,,118,119,,117,120,121,122,123,124',
    378 '125,106,107,108,109,110,112,,113,,,144,143,,118,119,,117,120,121,122',
    379 '123,124,125,106,107,108,109,110,112,,113,,,,143,,118,119,,117,120,121',
    380 '122,123,124,125,,144,,,,,,,,106,107,108,109,110,112,,113,,,,143,,118',
    381 '119,144,117,120,121,122,123,124,125,106,107,108,109,110,112,,113,,,',
    382 '143,,118,119,144,117,120,121,122,123,124,125,106,107,108,109,110,112',
    383 ',113,,,,143,,118,119,144,117,120,121,122,123,124,125,,,,,,,,,,106,107',
    384 '108,109,110,112,,113,,,,236,,118,119,144,117,120,121,122,123,124,125',
    385 ',,,,,,,,,,,,,,,144,230,,8,9,10,11,15,16,17,18,19,20,21,79,239,23,25',
    386 '27,28,29,,,144,231,,232,233,234,235,,237,238,240,241,242,243,,,,,,,',
    387 ',,,39,40,41,42,43,44,45,46,144,106,107,108,109,110,112,,113,,338,,143',
    388 ',118,119,,117,120,121,122,123,124,125,106,107,108,109,110,112,,113,',
    389 ',,143,,118,119,,117,120,121,122,123,124,125,8,9,10,11,15,16,17,18,19',
    390 '20,21,,,23,25,27,28,29,8,9,10,11,15,16,17,18,19,20,21,,,23,25,27,28',
    391 '29,,106,107,108,109,110,112,,113,,,144,143,,118,119,,117,120,121,122',
    392 '123,124,125,106,107,108,109,110,112,,113,,,144,143,,118,119,,117,120',
    393 '121,122,123,124,125,106,107,108,109,110,112,,113,,,,143,,118,119,,117',
    394 '120,121,122,123,124,125,106,107,108,109,110,189,,113,,,,143,,118,119',
    395 ',117,120,121,122,123,124,125,,144,,,,,,,,106,107,108,109,110,191,,113',
    396 ',,,143,,118,119,144,117,120,121,122,123,124,125,106,107,108,109,110',
    397 '191,,113,,,,143,,118,119,144,117,120,121,122,123,124,125,106,107,108',
    398 '109,110,112,,113,,,,143,,118,119,144,117,120,121,122,123,124,125,106',
    399 '107,108,109,110,112,,113,,,,143,,118,119,,117,120,121,122,123,124,125',
    400 ',144,,,,,141,,,,,,,142,,,328,,106,107,108,109,110,112,144,113,,,,143',
    401 ',118,119,,117,120,121,122,123,124,125,,,,,,,144,,,,,,,,,,,106,107,108',
    402 '109,110,112,,113,,,,236,144,118,119,,117,120,121,122,123,124,125,,,',
    403 ',,,,,,,,,,,,,230,,8,9,10,11,15,16,17,18,19,20,21,79,144,23,25,27,28',
    404 '29,,,,231,,232,233,234,235,,237,238,240,241,242,243,,,,,,,274,334,,253',
    405 '39,40,41,42,43,44,45,46,144,55,,,,,249,334,,253,,,53,,,,,,,55,,,,,8',
    406 '9,10,11,15,16,17,18,19,20,21,,,23,25,27,28,29,8,9,10,11,15,16,17,18',
    407 '19,20,21,,,23,25,27,28,29,370,,,,,,,,39,40,41,42,43,44,45,46,,,149,',
    408 ',,,,,,39,40,41,42,43,44,45,46,,8,9,10,11,15,16,17,18,19,20,21,,,23,25',
    409 '27,28,29,8,9,10,11,15,16,17,18,19,20,21,,,23,25,27,28,29,,,,330,,,,',
    410 '39,40,41,42,43,44,45,46,,,,,,,,,,,39,40,41,42,43,44,45,46,8,9,10,11',
    411 '15,16,17,18,19,20,21,,,23,25,27,28,29,8,9,10,11,15,16,17,18,19,20,21',
    412 ',,23,25,27,28,29,,,,,,,,,39,40,41,42,43,44,45,46,,,,,,,,,,,39,40,41',
    413 '42,43,44,45,46,8,9,10,11,15,16,17,18,19,20,21,,340,23,25,27,28,29,8',
    414 '9,10,11,15,16,17,18,19,20,21,,164,23,25,27,28,29,,,,,,,,,39,40,41,42',
    415 '43,44,45,46,,,,,,,,,,,39,40,41,42,43,44,45,46,8,9,10,11,15,16,17,18',
    416 '19,20,21,,,23,25,27,28,29,8,9,10,11,15,16,17,18,19,20,21,,,23,25,27',
    417 '28,29,,,,,,,,,39,40,41,42,43,44,45,46,,,,,,,,,,,39,40,41,42,43,44,45',
    418 '46,8,9,10,11,15,16,17,18,19,20,21,,,23,25,27,28,29,8,9,10,11,15,16,17',
    419 '18,19,20,21,,257,23,25,27,28,29,,,,,,,,,39,40,41,42,43,44,45,46,,,,',
    420 ',,,,,,39,40,41,42,43,44,45,46,8,9,10,11,15,16,17,18,19,20,21,,,23,25',
    421 '27,28,29,8,9,10,11,15,16,17,18,19,20,21,,262,23,25,27,28,29,,,,,,,,',
    422 '39,40,41,42,43,44,45,46,,,,,,,,,,,39,40,41,42,43,44,45,46,8,9,10,11',
    423 '15,16,17,18,19,20,21,,,23,25,27,28,29,8,9,10,11,15,16,17,18,19,20,21',
    424 ',,23,25,27,28,29,,,,,,,,,39,40,41,42,43,44,45,46,,,,,,,,,,,39,40,41',
    425 '42,43,44,45,46,8,9,10,11,15,16,17,18,19,20,21,,,23,25,27,28,29' ]
    426         racc_action_table = arr = ::Array.new(2875, nil)
     311'111,112,113,114,115,117,294,118,56,298,55,163,54,123,124,82,54,262,122',
     312'125,126,127,128,129,130,111,112,113,114,115,117,217,118,271,391,101',
     313'163,91,123,124,82,271,271,122,125,126,127,128,129,130,56,70,171,72,82',
     314'69,397,71,80,32,33,34,224,309,271,223,216,226,84,227,228,229,84,392',
     315'101,325,272,171,298,312,80,164,165,172,393,173,174,175,176,177,178,179',
     316'180,149,181,101,218,79,308,369,388,32,33,34,265,266,164,165,172,73,173',
     317'174,175,176,177,178,179,180,149,181,111,112,113,114,115,117,384,118',
     318'32,33,34,163,78,123,124,82,440,402,122,125,126,127,128,129,130,55,219',
     319'271,271,383,101,54,332,248,325,387,55,298,249,250,56,382,54,111,112',
     320'113,114,115,117,56,118,56,171,331,163,395,123,124,82,276,210,122,125',
     321'126,127,128,129,130,420,55,378,210,248,377,396,54,330,249,250,393,92',
     322'164,165,172,56,173,174,175,176,177,178,179,180,149,181,171,9,10,11,12',
     323'13,14,15,16,17,18,19,20,21,22,26,28,30,31,32,33,34,35,36,37,38,355,356',
     324'213,164,165,172,204,173,174,175,176,177,178,179,180,149,181,111,112',
     325'113,114,115,117,404,118,93,378,203,163,377,123,124,82,193,271,122,125',
     326'126,127,128,129,130,111,112,113,114,115,117,290,118,101,86,55,163,85',
     327'123,124,82,54,291,122,125,126,127,128,129,130,56,357,171,13,14,15,16',
     328'17,18,19,20,21,22,26,28,30,31,32,33,34,248,86,322,438,85,249,250,171',
     329'434,435,370,164,165,172,271,173,174,175,176,177,178,179,180,149,181',
     330'259,260,261,321,255,256,257,258,315,316,262,164,165,172,271,173,174',
     331'175,176,177,178,179,180,149,181,111,112,113,114,115,117,403,118,317',
     332'318,263,163,264,123,124,82,320,271,122,125,126,127,128,129,130,13,14',
     333'15,16,17,18,19,20,21,22,26,28,30,31,32,33,34,437,111,112,113,114,115',
     334'117,360,118,400,171,271,163,368,123,124,82,166,103,122,125,126,127,128',
     335'129,130,102,55,255,256,257,258,310,54,255,256,257,258,405,164,165,172',
     336'56,173,174,175,176,177,178,179,180,149,181,171,9,10,11,12,13,14,15,16',
     337'17,18,19,20,21,22,26,28,30,31,32,33,34,35,36,37,38,259,260,301,164,165',
     338'172,300,173,174,175,176,177,178,179,180,149,181,111,112,113,114,115',
     339'117,408,118,253,254,292,163,409,123,124,82,253,254,122,125,126,127,128',
     340'129,130,111,112,113,114,115,117,410,118,253,254,55,163,289,123,124,82',
     341'54,288,122,125,126,127,128,129,130,56,415,171,13,14,15,16,17,18,19,20',
     342'21,22,26,28,30,31,32,33,34,253,254,253,254,251,252,261,171,211,212,285',
     343'164,165,172,284,173,174,175,176,177,178,179,180,149,181,237,238,239',
     344'240,241,242,243,244,245,246,247,164,165,172,283,173,174,175,176,177',
     345'178,179,180,149,181,111,112,113,114,115,117,282,118,251,252,389,163',
     346'389,123,124,82,251,252,122,125,126,127,128,129,130,111,112,113,114,115',
     347'117,101,118,67,82,55,163,64,123,124,82,54,63,122,125,126,127,128,129',
     348'130,56,55,171,55,55,294,280,54,298,54,54,54,279,430,431,432,56,433,56',
     349'56,56,365,436,278,263,275,264,171,273,270,48,164,165,172,444,173,174',
     350'175,176,177,178,179,180,149,181,269,3,,,,,,,,,,164,165,172,,173,174',
     351'175,176,177,178,179,180,149,181,111,112,113,114,115,117,,118,,,,163',
     352',123,124,82,,,122,125,126,127,128,129,130,111,112,113,114,115,117,,118',
     353',,,148,,123,124,,,,122,125,126,127,128,129,130,,,171,111,112,113,114',
     354'115,117,,118,,,,148,,123,124,,,,122,125,126,127,128,129,130,,,,164,165',
     355'172,,173,174,175,176,177,178,179,180,149,181,,,,,,,111,112,113,114,115',
     356'117,,118,,411,,148,,123,124,,,149,122,125,126,127,128,129,130,,,,111',
     357'112,113,114,115,117,,118,,,,148,,123,124,,,149,122,125,126,127,128,129',
     358'130,111,112,113,114,115,117,,118,,,,148,,123,124,,,,122,125,126,127',
     359'128,129,130,,,171,,,,,,,,,,,,,149,,111,112,113,114,115,117,,118,,,171',
     360'148,,123,124,,,,122,125,126,127,128,129,130,,149,,,,,,,,111,112,113',
     361'114,115,117,,118,,,,148,,123,124,146,398,149,122,125,126,127,128,129',
     362'130,111,112,113,114,115,117,,118,,,,148,,123,124,,,,122,125,126,127',
     363'128,129,130,111,112,113,114,115,117,,118,,149,,148,,123,124,389,,,122',
     364'125,126,127,128,129,130,,,,147,,,111,112,113,114,115,117,,118,,,,148',
     365'149,123,124,,,,122,125,126,127,128,129,130,111,112,113,114,115,117,',
     366'118,,379,,148,149,123,124,,,,122,125,126,127,128,129,130,,,,,,,,,,,',
     367',149,,,,,111,112,113,114,115,117,,118,,,,148,,123,124,,,,122,125,126',
     368'127,128,129,130,,149,,,,,,,,,,,,,,,,,,,,,,,,,149,171,9,10,11,12,13,14',
     369'15,16,17,18,19,20,21,22,26,28,30,31,32,33,34,35,36,37,38,111,112,113',
     370'114,115,117,,118,,,,148,,123,124,149,,,122,125,126,127,128,129,130,111',
     371'112,113,114,115,117,,118,,,,148,,123,124,146,,,122,125,126,127,128,129',
     372'130,111,112,113,114,115,117,,118,,,,148,,123,124,,,,122,125,126,127',
     373'128,129,130,,111,112,113,114,115,117,,118,,,,148,,123,124,,,149,122',
     374'125,126,127,128,129,130,,,147,,,111,112,113,114,115,117,,118,,,,148',
     375'149,123,124,,,,122,125,126,127,128,129,130,111,112,113,114,115,117,',
     376'118,,,,148,149,123,124,,,,122,125,126,127,128,129,130,,111,112,113,114',
     377'115,117,,118,,,,148,149,123,124,,,,122,125,126,127,128,129,130,111,112',
     378'113,114,115,117,,118,,,,148,,123,124,146,,149,122,125,126,127,128,129',
     379'130,111,112,113,114,115,117,427,118,,,,148,,123,124,,,149,122,125,126',
     380'127,128,129,130,,111,112,113,114,115,117,,118,,,,148,,123,124,,,149',
     381'122,125,126,127,128,129,130,,,147,,,111,112,113,114,115,117,,118,,185',
     382',148,149,123,124,,,,122,125,126,127,128,129,130,111,112,113,114,115',
     383'117,,118,,,,148,149,123,124,,,,122,125,126,127,128,129,130,,111,112',
     384'113,114,115,117,,118,,,,148,149,123,124,,,,122,125,126,127,128,129,130',
     385'111,112,113,114,115,117,,118,,,,148,,123,124,,,149,122,125,126,127,128',
     386'129,130,111,112,113,114,115,117,,118,,,,148,,123,124,,,149,122,125,126',
     387'127,128,129,130,,111,112,113,114,115,117,,118,,,,148,,123,124,,,149',
     388'122,125,126,127,128,129,130,111,112,113,114,115,117,,118,,,,148,,123',
     389'124,,,149,122,125,126,127,128,129,130,111,112,113,114,115,117,,118,',
     390',,148,,123,124,,,149,122,125,126,127,128,129,130,,111,112,113,114,115',
     391'117,,118,,,,148,,123,124,,,149,122,125,126,127,128,129,130,111,112,113',
     392'114,115,117,,118,,,,148,,123,124,,,149,122,125,126,127,128,129,130,111',
     393'112,113,114,115,117,,118,,,,148,,123,124,,,149,122,125,126,127,128,129',
     394'130,,111,112,113,114,115,117,,118,,,,148,,123,124,,,149,122,125,126',
     395'127,128,129,130,111,112,113,114,115,117,,118,,,,148,,123,124,,,149,122',
     396'125,126,127,128,129,130,111,112,113,114,115,117,,118,,,,148,,123,124',
     397',,149,122,125,126,127,128,129,130,,111,112,113,114,115,117,,118,,,,148',
     398',123,124,,,149,122,125,126,127,128,129,130,111,112,113,114,115,117,',
     399'118,,,,148,,123,124,,,149,122,125,126,127,128,129,130,111,112,113,114',
     400'115,117,,118,,,,148,,123,124,146,,149,122,125,126,127,128,129,130,,111',
     401'112,113,114,115,117,,118,,,,148,,123,124,,,149,122,125,126,127,128,129',
     402'130,,,,,,,,,,,,,,,,,,149,,,,,,,,,,147,,,111,112,113,114,115,117,,118',
     403',,,148,149,123,124,,,,122,125,126,127,128,129,130,,111,112,113,114,115',
     404'117,,118,,,,148,149,123,124,,,,122,125,126,127,128,129,130,,,,,,,13',
     405'14,15,16,17,18,19,20,21,22,26,28,30,31,32,33,34,,,111,112,113,114,115',
     406'117,,118,,,,148,,123,124,,,149,122,125,126,127,128,129,130,,111,112',
     407'113,114,115,231,,118,,,,148,,123,124,,,149,122,125,126,127,128,129,130',
     408'111,112,113,114,115,233,,118,,,,148,,123,124,,,,122,125,126,127,128',
     409'129,130,111,112,113,114,115,233,,118,,,,148,,123,124,,,149,122,125,126',
     410'127,128,129,130,,,,,,,,,,,,,111,112,113,114,115,117,149,118,,,,148,',
     411'123,124,,,,122,125,126,127,128,129,130,111,112,113,114,115,117,149,118',
     412',,,148,,123,124,,,,122,125,126,127,128,129,130,,,,,,,149,13,14,15,16',
     413'17,18,19,20,21,22,26,28,30,31,32,33,34,,,111,112,113,114,115,117,,118',
     414',,,148,,123,124,,,149,122,125,126,127,128,129,130,111,112,113,114,115',
     415'117,327,118,,,,148,,123,124,,,149,122,125,126,127,128,129,130,,,,,,',
     416',13,14,15,16,17,18,19,20,21,22,26,28,30,31,32,33,34,,,111,112,113,114',
     417'115,117,,118,,,,148,,123,124,,,149,122,125,126,127,128,129,130,111,112',
     418'113,114,115,117,,118,,,,148,,123,124,,,149,122,125,126,127,128,129,130',
     419'111,112,113,114,115,117,,118,,,,148,,123,124,,,,122,125,126,127,128',
     420'129,130,,111,112,113,114,115,117,429,118,,,,148,,123,124,,,149,122,125',
     421'126,127,128,129,130,,287,,,,111,112,113,114,115,117,,118,,,,148,149',
     422'123,124,146,442,,122,125,126,127,128,129,130,111,112,113,114,115,117',
     423',118,,,,148,149,123,124,,,,122,125,126,127,128,129,130,,111,112,113',
     424'114,115,117,,118,,,,148,149,123,124,,,,122,125,126,127,128,129,130,',
     425',147,,,,,,,,,,,,,,46,149,,,,,,,,,,,,,,,,,,,,,,,,,149,,,46,,,,,,,,,,',
     426',,,,,,,,,,,,149,45,9,10,11,12,13,14,15,16,17,18,19,20,21,22,26,28,30',
     427'31,32,33,34,35,36,37,38,,,47,45,9,10,11,12,13,14,15,16,17,18,19,20,21',
     428'22,26,28,30,31,32,33,34,35,36,37,38,,41,47,294,375,,298,,,54,,,,,,,',
     429',56,,,,,,,,,,325,375,,298,,,,,,,,,,,,56,,,,,,,,9,10,11,12,13,14,15,16',
     430'17,18,19,20,21,22,26,28,30,31,32,33,34,35,36,37,38,9,10,11,12,13,14',
     431'15,16,17,18,19,20,21,22,26,28,30,31,32,33,34,35,36,37,38,188,,,,,192',
     432',,,,,,,,,,,,,,,,,,,413,,,,,,,,,,,,,,,,,,,,,,9,10,11,12,13,14,15,16,17',
     433'18,19,20,21,22,26,28,30,31,32,33,34,35,36,37,38,9,10,11,12,13,14,15',
     434'16,17,18,19,20,21,22,26,28,30,31,32,33,34,35,36,37,38,371,9,10,11,12',
     435'13,14,15,16,17,18,19,20,21,22,26,28,30,31,32,33,34,35,36,37,38,,,,,',
     436'205,,,,,,,,,,,,9,10,11,12,13,14,15,16,17,18,19,20,21,22,26,28,30,31',
     437'32,33,34,35,36,37,38,9,10,11,12,13,14,15,16,17,18,19,20,21,22,26,28',
     438'30,31,32,33,34,35,36,37,38,307,,,,,,,,,,,,,,,,,,,,,,,,,381,,,,,,,,,',
     439',,9,10,11,12,13,14,15,16,17,18,19,20,21,22,26,28,30,31,32,33,34,35,36',
     440'37,38,9,10,11,12,13,14,15,16,17,18,19,20,21,22,26,28,30,31,32,33,34',
     441'35,36,37,38,302,9,10,11,12,13,14,15,16,17,18,19,20,21,22,26,28,30,31',
     442'32,33,34,35,36,37,38,,,,,,,,,,,,9,10,11,12,13,14,15,16,17,18,19,20,21',
     443'22,26,28,30,31,32,33,34,35,36,37,38,9,10,11,12,13,14,15,16,17,18,19',
     444'20,21,22,26,28,30,31,32,33,34,35,36,37,38,9,10,11,12,13,14,15,16,17',
     445'18,19,20,21,22,26,28,30,31,32,33,34,35,36,37,38,9,10,11,12,13,14,15',
     446'16,17,18,19,20,21,22,26,28,30,31,32,33,34,35,36,37,38,9,10,11,12,13',
     447'14,15,16,17,18,19,20,21,22,26,28,30,31,32,33,34,35,36,37,38,9,10,11',
     448'12,13,14,15,16,17,18,19,20,21,22,26,28,30,31,32,33,34,35,36,37,38,9',
     449'10,11,12,13,14,15,16,17,18,19,20,21,22,26,28,30,31,32,33,34,35,36,37',
     450'38' ]
     451        racc_action_table = arr = ::Array.new(3198, nil)
    427452        idx = 0
    428453        clist.each do |str|
     
    434459
    435460clist = [
    436 '210,210,210,210,210,210,26,210,24,114,213,210,55,210,210,297,210,210',
    437 '210,210,210,210,210,211,211,211,211,211,211,332,211,298,332,299,211',
    438 '48,211,211,95,211,211,211,211,211,211,211,217,26,213,24,300,55,55,189',
    439 '189,189,189,189,189,48,189,114,114,90,189,50,189,189,172,189,189,189',
    440 '189,189,189,189,95,50,132,132,303,217,217,217,217,217,217,217,217,217',
    441 '217,166,85,210,189,189,189,189,189,189,189,189,189,189,189,101,172,189',
    442 '189,189,189,189,287,287,347,166,211,394,394,394,394,394,394,347,394',
    443 '259,288,288,394,101,394,394,84,394,394,394,394,394,394,394,181,181,181',
    444 '181,181,181,189,181,318,259,1,181,273,181,181,273,181,181,181,181,181',
    445 '181,181,194,194,194,194,194,194,51,194,289,289,322,194,51,194,194,70',
    446 '194,194,194,194,194,194,194,195,195,195,195,195,195,275,195,324,52,327',
    447 '195,52,195,195,275,195,195,195,195,195,195,195,51,394,248,80,180,248',
    448 '80,180,248,392,392,392,392,392,392,252,392,180,252,330,392,333,392,392',
    449 '181,392,392,392,392,392,392,392,342,152,335,286,152,69,342,152,286,286',
    450 '248,290,290,342,152,194,392,66,392,392,392,392,392,392,392,392,392,392',
    451 '392,392,339,392,392,392,392,392,291,291,195,392,64,392,392,392,392,63',
    452 '392,392,392,392,392,392,285,354,128,292,292,285,285,128,128,355,392',
    453 '392,392,392,392,392,392,392,392,381,381,381,381,381,381,356,381,295',
    454 '295,357,381,358,381,381,359,381,381,381,381,381,381,381,380,380,380',
    455 '380,380,380,365,380,129,129,369,380,371,380,380,22,380,380,380,380,380',
    456 '380,380,196,196,196,196,196,196,14,196,382,32,387,196,389,196,196,390',
    457 '196,196,196,196,196,196,196,197,197,197,197,197,197,12,197,137,137,393',
    458 '197,397,197,197,185,197,197,197,197,197,197,197,3,381,184,32,182,32',
    459 '32,32,32,32,32,32,32,32,32,32,178,2,32,32,32,32,32,177,380,32,72,72',
    460 '72,72,72,72,72,72,72,72,72,130,130,72,72,72,72,72,175,170,157,196,156',
    461 '32,32,32,32,32,32,32,32,2,150,2,2,2,2,2,2,2,2,2,2,2,197,148,2,2,2,2',
    462 '2,146,2,2,198,198,198,198,198,198,144,198,142,136,135,198,134,198,198',
    463 '133,198,198,198,198,198,198,198,2,2,2,2,2,2,2,2,215,379,379,379,379',
    464 '379,379,231,379,232,234,235,379,236,379,379,238,379,379,379,379,379',
    465 '379,379,160,94,54,240,264,241,160,94,54,242,264,244,111,160,94,54,379',
    466 '264,379,379,379,379,379,379,379,379,379,379,379,379,105,379,379,379',
    467 '379,379,104,98,198,379,97,379,379,379,379,91,379,379,379,379,379,379',
    468 '115,278,115,281,115,115,115,296,,,379,379,379,379,379,379,379,379,379',
    469 '171,171,171,171,171,171,,171,,,,171,,171,171,,171,171,171,171,171,171',
    470 '171,,,378,378,378,378,378,378,,378,,,,378,,378,378,,378,378,378,378',
    471 '378,378,378,76,4,74,,174,,76,4,74,,174,,,76,4,74,378,174,378,378,378',
    472 '378,378,378,378,378,378,378,378,378,,378,378,378,378,378,,,,378,,378',
    473 '378,378,378,171,378,378,378,378,378,378,294,294,294,294,131,131,131',
    474 '131,,,378,378,378,378,378,378,378,378,378,361,361,361,361,361,361,,361',
    475 ',,,361,,361,361,,361,361,361,361,361,361,361,218,293,293,293,293,,218',
    476 ',,,,,,218,,,361,,361,361,361,361,361,361,361,361,361,361,361,361,,361',
    477 '361,361,361,361,,,,361,,361,361,361,361,,361,361,361,361,361,361,,,',
    478 ',,,,,,,361,361,361,361,361,361,361,361,361,199,199,199,199,199,199,',
    479 '199,,,,199,,199,199,,199,199,199,199,199,199,199,350,350,350,350,350',
    480 '350,,350,,,,350,,350,350,,350,350,350,350,350,350,350,346,346,346,346',
    481 '346,346,,346,,,,346,,346,346,,346,346,346,346,346,346,346,191,191,191',
    482 '191,191,191,,191,,,,191,,191,191,,191,191,191,191,191,191,191,,199,',
    483 ',,,,,,200,200,200,200,200,200,,200,,,,200,,200,200,350,200,200,200,200',
    484 '200,200,200,336,336,336,336,336,336,,336,,336,,336,,336,336,346,336',
    485 '336,336,336,336,336,336,,,,,,,,323,323,323,323,323,323,,323,191,,,323',
    486 ',323,323,,323,323,323,323,323,323,323,,,,,,,,,,,,,,,,,323,200,323,323',
    487 '323,323,323,323,323,323,323,323,323,323,,323,323,323,323,323,,,,323',
    488 '336,323,323,323,323,,323,323,323,323,323,323,,,,,,,,,,,323,323,323,323',
    489 '323,323,323,323,323,321,321,321,321,321,321,,321,,,,321,,321,321,,321',
    490 '321,321,321,321,321,321,,,,,,,,,,,,,,,,,321,,321,321,321,321,321,321',
    491 '321,321,321,321,321,321,,321,321,321,321,321,,,,321,,321,321,321,321',
    492 ',321,321,321,321,321,321,,,,,,,,,,,321,321,321,321,321,321,321,321,321',
    493 '398,398,398,398,398,398,,398,,,,398,,398,398,,398,398,398,398,398,398',
    494 '398,,,,,,,,,,,,,,,,,398,,398,398,398,398,398,398,398,398,398,398,398',
    495 '398,,398,398,398,398,398,,,,398,,398,398,398,398,,398,398,398,398,398',
    496 '398,,,,,,,,,,,398,398,398,398,398,398,398,398,398,320,320,320,320,320',
    497 '320,,320,,,,320,,320,320,,320,320,320,320,320,320,320,319,319,319,319',
    498 '319,319,,319,,,,319,,319,319,,319,319,319,319,319,319,319,77,77,77,77',
    499 '77,77,,77,,,,77,,77,77,,77,77,77,77,77,77,77,317,317,317,317,317,317',
    500 ',317,,,,317,,317,317,,317,317,317,317,317,317,317,,320,,,,,77,,,,,,',
    501 '77,82,82,82,82,82,82,,82,,82,319,82,,82,82,,82,82,82,82,82,82,82,183',
    502 '183,183,183,183,183,,183,,,77,183,,183,183,,183,183,183,183,183,183',
    503 '183,316,316,316,316,316,316,,316,,,317,316,,316,316,,316,316,316,316',
    504 '316,316,316,304,304,304,304,304,304,,304,,,,304,,304,304,,304,304,304',
    505 '304,304,304,304,,82,,,,,,,,201,201,201,201,201,201,,201,,,,201,,201',
    506 '201,183,201,201,201,201,201,201,201,202,202,202,202,202,202,,202,,,',
    507 '202,,202,202,316,202,202,202,202,202,202,202,302,302,302,302,302,302',
    508 ',302,,,,302,,302,302,304,302,302,302,302,302,302,302,277,277,277,277',
    509 '277,277,,277,,,,277,,277,277,,277,277,277,277,277,277,277,,201,,,,,302',
    510 '302,,,,,,302,203,203,203,203,203,203,,203,,,202,203,,203,203,,203,203',
    511 '203,203,203,203,203,209,209,209,209,209,209,,209,,,302,209,,209,209',
    512 ',209,209,209,209,209,209,209,212,212,212,212,212,212,,212,,,277,212',
    513 ',212,212,,212,212,212,212,212,212,212,204,204,204,204,204,204,,204,',
    514 ',,204,,204,204,,204,204,204,204,204,204,204,,203,,,,,,,,271,271,271',
    515 '271,271,271,,271,,,,271,,271,271,209,271,271,271,271,271,271,271,205',
    516 '205,205,205,205,205,,205,,,,205,,205,205,212,205,205,205,205,205,205',
    517 '205,206,206,206,206,206,206,,206,,,,206,,206,206,204,206,206,206,206',
    518 '206,206,206,,,,,,,,,,145,145,145,145,145,145,,145,,,,145,,145,145,271',
    519 '145,145,145,145,145,145,145,,,,,,,,,,,,,,,,205,145,,145,145,145,145',
    520 '145,145,145,145,145,145,145,145,145,145,145,145,145,145,,,206,145,,145',
    521 '145,145,145,,145,145,145,145,145,145,,,,,,,,,,,145,145,145,145,145,145',
    522 '145,145,145,253,253,253,253,253,253,,253,,253,,253,,253,253,,253,253',
    523 '253,253,253,253,253,112,112,112,112,112,112,,112,,,,112,,112,112,,112',
    524 '112,112,112,112,112,112,38,38,38,38,38,38,38,38,38,38,38,,,38,38,38',
    525 '38,38,112,112,112,112,112,112,112,112,112,112,112,,,112,112,112,112',
    526 '112,,207,207,207,207,207,207,,207,,,253,207,,207,207,,207,207,207,207',
    527 '207,207,207,208,208,208,208,208,208,,208,,,112,208,,208,208,,208,208',
    528 '208,208,208,208,208,116,116,116,116,116,116,,116,,,,116,,116,116,,116',
    529 '116,116,116,116,116,116,117,117,117,117,117,117,,117,,,,117,,117,117',
    530 ',117,117,117,117,117,117,117,,207,,,,,,,,118,118,118,118,118,118,,118',
    531 ',,,118,,118,118,208,118,118,118,118,118,118,118,119,119,119,119,119',
    532 '119,,119,,,,119,,119,119,116,119,119,119,119,119,119,119,141,141,141',
    533 '141,141,141,,141,,,,141,,141,141,117,141,141,141,141,141,141,141,243',
    534 '243,243,243,243,243,,243,,,,243,,243,243,,243,243,243,243,243,243,243',
    535 ',118,,,,,141,,,,,,,141,,,243,,237,237,237,237,237,237,119,237,,,,237',
    536 ',237,237,,237,237,237,237,237,237,237,,,,,,,141,,,,,,,,,,,233,233,233',
    537 '233,233,233,,233,,,,233,243,233,233,,233,233,233,233,233,233,233,,,',
    538 ',,,,,,,,,,,,,233,,233,233,233,233,233,233,233,233,233,233,233,233,237',
    539 '233,233,233,233,233,,,,233,,233,233,233,233,,233,233,233,233,233,233',
    540 ',,,,,,274,274,,274,233,233,233,233,233,233,233,233,233,274,,,,,249,249',
    541 ',249,,,249,,,,,,,249,,,,,274,274,274,274,274,274,274,274,274,274,274',
    542 ',,274,274,274,274,274,249,249,249,249,249,249,249,249,249,249,249,,',
    543 '249,249,249,249,249,337,,,,,,,,274,274,274,274,274,274,274,274,,,83',
    544 ',,,,,,,249,249,249,249,249,249,249,249,,337,337,337,337,337,337,337',
    545 '337,337,337,337,,,337,337,337,337,337,83,83,83,83,83,83,83,83,83,83',
    546 '83,,,83,83,83,83,83,,,,247,,,,,337,337,337,337,337,337,337,337,,,,,',
    547 ',,,,,83,83,83,83,83,83,83,83,247,247,247,247,247,247,247,247,247,247',
    548 '247,,,247,247,247,247,247,5,5,5,5,5,5,5,5,5,5,5,,,5,5,5,5,5,,,,,,,,',
    549 '247,247,247,247,247,247,247,247,,,,,,,,,,,5,5,5,5,5,5,5,5,254,254,254',
    550 '254,254,254,254,254,254,254,254,,254,254,254,254,254,254,92,92,92,92',
    551 '92,92,92,92,92,92,92,,92,92,92,92,92,92,,,,,,,,,254,254,254,254,254',
    552 '254,254,254,,,,,,,,,,,92,92,92,92,92,92,92,92,155,155,155,155,155,155',
    553 '155,155,155,155,155,,,155,155,155,155,155,89,89,89,89,89,89,89,89,89',
    554 '89,89,,,89,89,89,89,89,,,,,,,,,155,155,155,155,155,155,155,155,,,,,',
    555 ',,,,,89,89,89,89,89,89,89,89,88,88,88,88,88,88,88,88,88,88,88,,,88,88',
    556 '88,88,88,158,158,158,158,158,158,158,158,158,158,158,,158,158,158,158',
    557 '158,158,,,,,,,,,88,88,88,88,88,88,88,88,,,,,,,,,,,158,158,158,158,158',
    558 '158,158,158,67,67,67,67,67,67,67,67,67,67,67,,,67,67,67,67,67,161,161',
    559 '161,161,161,161,161,161,161,161,161,,161,161,161,161,161,161,,,,,,,',
    560 ',67,67,67,67,67,67,67,67,,,,,,,,,,,161,161,161,161,161,161,161,161,7',
    561 '7,7,7,7,7,7,7,7,7,7,,,7,7,7,7,7,6,6,6,6,6,6,6,6,6,6,6,,,6,6,6,6,6,,',
    562 ',,,,,,7,7,7,7,7,7,7,7,,,,,,,,,,,6,6,6,6,6,6,6,6,73,73,73,73,73,73,73',
    563 '73,73,73,73,,,73,73,73,73,73' ]
    564         racc_action_check = arr = ::Array.new(2875, nil)
     461'440,440,440,440,440,440,293,440,56,293,52,440,293,440,440,440,52,139',
     462'440,440,440,440,440,440,440,438,438,438,438,438,438,106,438,354,326',
     463'103,438,65,438,438,438,151,326,438,438,438,438,438,438,438,88,29,440',
     464'31,51,29,354,31,109,56,56,56,120,207,286,120,106,120,293,120,120,120',
     465'52,328,212,324,151,438,324,212,51,440,440,440,328,440,440,440,440,440',
     466'440,440,440,440,440,318,110,49,207,286,318,88,88,88,142,142,438,438',
     467'438,31,438,438,438,438,438,438,438,438,438,438,436,436,436,436,436,436',
     468'304,436,120,120,120,436,49,436,436,436,428,362,436,436,436,436,436,436',
     469'436,98,116,428,362,304,316,98,227,340,222,316,309,222,340,340,98,304',
     470'309,167,167,167,167,167,167,222,167,309,436,226,167,333,167,167,167',
     471'167,98,167,167,167,167,167,167,167,394,4,297,309,339,297,334,4,225,339',
     472'339,394,66,436,436,436,4,436,436,436,436,436,436,436,436,436,436,167',
     473'167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167',
     474'167,167,167,167,167,167,167,167,267,267,101,167,167,167,95,167,167,167',
     475'167,167,167,167,167,167,167,429,429,429,429,429,429,364,429,68,373,94',
     476'429,373,429,429,429,87,364,429,429,429,429,429,429,429,427,427,427,427',
     477'427,427,187,427,71,83,217,427,83,427,427,427,217,187,427,427,427,427',
     478'427,427,427,217,269,429,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75',
     479'75,75,133,53,221,426,53,133,133,427,418,418,291,429,429,429,426,429',
     480'429,429,429,429,429,429,429,429,429,137,137,350,220,136,136,136,136',
     481'214,214,351,427,427,427,220,427,427,427,427,427,427,427,427,427,427',
     482'175,175,175,175,175,175,363,175,215,215,352,175,353,175,175,175,218',
     483'363,175,175,175,175,175,175,175,76,76,76,76,76,76,76,76,76,76,76,76',
     484'76,76,76,76,76,425,82,82,82,82,82,82,274,82,357,175,425,82,283,82,82',
     485'82,82,73,82,82,82,82,82,82,82,72,201,347,347,347,347,209,201,348,348',
     486'348,348,365,175,175,175,201,175,175,175,175,175,175,175,175,175,175',
     487'82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82',
     488'82,82,82,349,349,198,82,82,82,197,82,82,82,82,82,82,82,82,82,82,273',
     489'273,273,273,273,273,371,273,135,135,189,273,374,273,273,273,346,346',
     490'273,273,273,273,273,273,273,404,404,404,404,404,404,376,404,345,345',
     491'79,404,186,404,404,404,79,184,404,404,404,404,404,404,404,79,380,273',
     492'47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,344,344,343,343,342',
     493'342,138,404,99,99,179,273,273,273,178,273,273,273,273,273,273,273,273',
     494'273,273,131,131,131,131,131,131,131,131,131,131,131,404,404,404,177',
     495'404,404,404,404,404,404,404,404,404,404,402,402,402,402,402,402,176',
     496'402,341,341,395,402,396,402,402,402,134,134,402,402,402,402,402,402',
     497'402,275,275,275,275,275,275,102,275,27,403,77,275,25,275,275,275,77',
     498'23,275,275,275,275,275,275,275,77,55,402,152,384,191,174,55,191,152',
     499'384,191,173,408,412,414,55,416,152,384,191,281,422,172,140,165,141,275',
     500'163,149,3,402,402,402,437,402,402,402,402,402,402,402,402,402,402,147',
     501'1,,,,,,,,,,275,275,275,,275,275,275,275,275,275,275,275,275,275,360',
     502'360,360,360,360,360,,360,,,,360,,360,360,360,,,360,360,360,360,360,360',
     503'360,249,249,249,249,249,249,,249,,,,249,,249,249,,,,249,249,249,249',
     504'249,249,249,,,360,383,383,383,383,383,383,,383,,,,383,,383,383,,,,383',
     505'383,383,383,383,383,383,,,,360,360,360,,360,360,360,360,360,360,360',
     506'360,360,360,,,,,,,377,377,377,377,377,377,,377,,377,,377,,377,377,,',
     507'249,377,377,377,377,377,377,377,,,,367,367,367,367,367,367,,367,,,,367',
     508',367,367,,,383,367,367,367,367,367,367,367,366,366,366,366,366,366,',
     509'366,,,,366,,366,366,,,,366,366,366,366,366,366,366,,,367,,,,,,,,,,,',
     510',377,,393,393,393,393,393,393,,393,,,366,393,,393,393,,,,393,393,393',
     511'393,393,393,393,,367,,,,,,,,356,356,356,356,356,356,,356,,,,356,,356',
     512'356,356,356,366,356,356,356,356,356,356,356,330,330,330,330,330,330',
     513',330,,,,330,,330,330,,,,330,330,330,330,330,330,330,322,322,322,322',
     514'322,322,,322,,393,,322,,322,322,322,,,322,322,322,322,322,322,322,,',
     515',356,,,310,310,310,310,310,310,,310,,,,310,356,310,310,,,,310,310,310',
     516'310,310,310,310,298,298,298,298,298,298,,298,,298,,298,330,298,298,',
     517',,298,298,298,298,298,298,298,,,,,,,,,,,,,322,,,,,282,282,282,282,282',
     518'282,,282,,,,282,,282,282,,,,282,282,282,282,282,282,282,,310,,,,,,,',
     519',,,,,,,,,,,,,,,,,298,282,282,282,282,282,282,282,282,282,282,282,282',
     520'282,282,282,282,282,282,282,282,282,282,282,282,282,282,280,280,280',
     521'280,280,280,,280,,,,280,,280,280,282,,,280,280,280,280,280,280,280,146',
     522'146,146,146,146,146,,146,,,,146,,146,146,146,,,146,146,146,146,146,146',
     523'146,278,278,278,278,278,278,,278,,,,278,,278,278,,,,278,278,278,278',
     524'278,278,278,,397,397,397,397,397,397,,397,,,,397,,397,397,,,280,397',
     525'397,397,397,397,397,397,,,146,,,405,405,405,405,405,405,,405,,,,405',
     526'146,405,405,,,,405,405,405,405,405,405,405,271,271,271,271,271,271,',
     527'271,,,,271,278,271,271,,,,271,271,271,271,271,271,271,,266,266,266,266',
     528'266,266,,266,,,,266,397,266,266,,,,266,266,266,266,266,266,266,80,80',
     529'80,80,80,80,,80,,,,80,,80,80,80,,405,80,80,80,80,80,80,80,406,406,406',
     530'406,406,406,406,406,,,,406,,406,406,,,271,406,406,406,406,406,406,406',
     531',265,265,265,265,265,265,,265,,,,265,,265,265,,,266,265,265,265,265',
     532'265,265,265,,,80,,,85,85,85,85,85,85,,85,,85,,85,80,85,85,,,,85,85,85',
     533'85,85,85,85,264,264,264,264,264,264,,264,,,,264,406,264,264,,,,264,264',
     534'264,264,264,264,264,,263,263,263,263,263,263,,263,,,,263,265,263,263',
     535',,,263,263,263,263,263,263,263,262,262,262,262,262,262,,262,,,,262,',
     536'262,262,,,85,262,262,262,262,262,262,262,261,261,261,261,261,261,,261',
     537',,,261,,261,261,,,264,261,261,261,261,261,261,261,,260,260,260,260,260',
     538'260,,260,,,,260,,260,260,,,263,260,260,260,260,260,260,260,259,259,259',
     539'259,259,259,,259,,,,259,,259,259,,,262,259,259,259,259,259,259,259,258',
     540'258,258,258,258,258,,258,,,,258,,258,258,,,261,258,258,258,258,258,258',
     541'258,,257,257,257,257,257,257,,257,,,,257,,257,257,,,260,257,257,257',
     542'257,257,257,257,256,256,256,256,256,256,,256,,,,256,,256,256,,,259,256',
     543'256,256,256,256,256,256,255,255,255,255,255,255,,255,,,,255,,255,255',
     544',,258,255,255,255,255,255,255,255,,254,254,254,254,254,254,,254,,,,254',
     545',254,254,,,257,254,254,254,254,254,254,254,253,253,253,253,253,253,',
     546'253,,,,253,,253,253,,,256,253,253,253,253,253,253,253,252,252,252,252',
     547'252,252,,252,,,,252,,252,252,,,255,252,252,252,252,252,252,252,,251',
     548'251,251,251,251,251,,251,,,,251,,251,251,,,254,251,251,251,251,251,251',
     549'251,250,250,250,250,250,250,,250,,,,250,,250,250,,,253,250,250,250,250',
     550'250,250,250,389,389,389,389,389,389,,389,,,,389,,389,389,389,,252,389',
     551'389,389,389,389,389,389,,248,248,248,248,248,248,,248,,,,248,,248,248',
     552',,251,248,248,248,248,248,248,248,,,,,,,,,,,,,,,,,,250,,,,,,,,,,389',
     553',,117,117,117,117,117,117,,117,,,,117,389,117,117,,,,117,117,117,117',
     554'117,117,117,,236,236,236,236,236,236,,236,,,,236,248,236,236,,,,236',
     555'236,236,236,236,236,236,,,,,,,117,117,117,117,117,117,117,117,117,117',
     556'117,117,117,117,117,117,117,,,121,121,121,121,121,121,,121,,,,121,,121',
     557'121,,,117,121,121,121,121,121,121,121,,122,122,122,122,122,122,,122',
     558',,,122,,122,122,,,236,122,122,122,122,122,122,122,123,123,123,123,123',
     559'123,,123,,,,123,,123,123,,,,123,123,123,123,123,123,123,124,124,124',
     560'124,124,124,,124,,,,124,,124,124,,,121,124,124,124,124,124,124,124,',
     561',,,,,,,,,,,233,233,233,233,233,233,122,233,,,,233,,233,233,,,,233,233',
     562'233,233,233,233,233,223,223,223,223,223,223,123,223,,,,223,,223,223',
     563',,,223,223,223,223,223,223,223,,,,,,,124,233,233,233,233,233,233,233',
     564'233,233,233,233,233,233,233,233,233,233,,,231,231,231,231,231,231,,231',
     565',,,231,,231,231,,,233,231,231,231,231,231,231,231,224,224,224,224,224',
     566'224,224,224,,,,224,,224,224,,,223,224,224,224,224,224,224,224,,,,,,',
     567',231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231',
     568',,213,213,213,213,213,213,,213,,,,213,,213,213,,,231,213,213,213,213',
     569'213,213,213,210,210,210,210,210,210,,210,,,,210,,210,210,,,224,210,210',
     570'210,210,210,210,210,180,180,180,180,180,180,,180,,,,180,,180,180,,,',
     571'180,180,180,180,180,180,180,,407,407,407,407,407,407,407,407,,,,407',
     572',407,407,,,213,407,407,407,407,407,407,407,,180,,,,435,435,435,435,435',
     573'435,,435,,,,435,210,435,435,435,435,,435,435,435,435,435,435,435,164',
     574'164,164,164,164,164,,164,,,,164,180,164,164,,,,164,164,164,164,164,164',
     575'164,,279,279,279,279,279,279,,279,,,,279,407,279,279,,,,279,279,279',
     576'279,279,279,279,,,435,,,,,,,,,,,,,,41,435,,,,,,,,,,,,,,,,,,,,,,,,,164',
     577',,2,,,,,,,,,,,,,,,,,,,,,,,279,41,41,41,41,41,41,41,41,41,41,41,41,41',
     578'41,41,41,41,41,41,41,41,41,41,41,41,41,,,41,2,2,2,2,2,2,2,2,2,2,2,2',
     579'2,2,2,2,2,2,2,2,2,2,2,2,2,2,,2,2,294,294,,294,,,294,,,,,,,,,294,,,,',
     580',,,,,325,325,,325,,,,,,,,,,,,325,,,,,,,,294,294,294,294,294,294,294',
     581'294,294,294,294,294,294,294,294,294,294,294,294,294,294,294,294,294',
     582'294,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325',
     583'325,325,325,325,325,325,325,325,325,86,,,,,86,,,,,,,,,,,,,,,,,,,,378',
     584',,,,,,,,,,,,,,,,,,,,,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86',
     585'86,86,86,86,86,86,86,86,86,378,378,378,378,378,378,378,378,378,378,378',
     586'378,378,378,378,378,378,378,378,378,378,378,378,378,378,292,7,7,7,7',
     587'7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,,,,,,96,,,,,,,,,,,,292,292',
     588'292,292,292,292,292,292,292,292,292,292,292,292,292,292,292,292,292',
     589'292,292,292,292,292,292,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96',
     590'96,96,96,96,96,96,96,96,96,96,202,,,,,,,,,,,,,,,,,,,,,,,,,299,,,,,,',
     591',,,,,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202',
     592'202,202,202,202,202,202,202,202,202,299,299,299,299,299,299,299,299',
     593'299,299,299,299,299,299,299,299,299,299,299,299,299,299,299,299,299',
     594'199,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92',
     595'92,92,92,,,,,,,,,,,,199,199,199,199,199,199,199,199,199,199,199,199',
     596'199,199,199,199,199,199,199,199,199,199,199,199,199,8,8,8,8,8,8,8,8',
     597'8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,196,196,196,196,196,196,196,196,196',
     598'196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,6,6',
     599'6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5',
     600'5,5,5,5,5,5,5,5,5,5,5,5,5,5,93,93,93,93,93,93,93,93,93,93,93,93,93,93',
     601'93,93,93,93,93,93,93,93,93,93,93,69,69,69,69,69,69,69,69,69,69,69,69',
     602'69,69,69,69,69,69,69,69,69,69,69,69,69' ]
     603        racc_action_check = arr = ::Array.new(3198, nil)
    565604        idx = 0
    566605        clist.each do |str|
     
    572611
    573612racc_action_pointer = [
    574    nil,   150,   420,   404,   652,  2412,  2762,  2744,   nil,   nil,
    575    nil,   nil,   346,   nil,   323,   nil,   nil,   nil,   nil,   nil,
    576    nil,   nil,   337,   nil,    -5,   nil,    -7,   nil,   nil,   nil,
    577    nil,   nil,   366,   nil,   nil,   nil,   nil,   nil,  1848,   nil,
    578    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    18,   nil,
    579     23,   162,   188,   nil,   534,    -8,   nil,   nil,   nil,   nil,
    580    nil,   nil,   nil,   232,   227,   nil,   204,  2674,   nil,   233,
    581    124,   nil,   387,  2814,   653,   nil,   651,  1303,   nil,   nil,
    582    205,   nil,  1363,  2342,   124,    72,   nil,   nil,  2604,  2552,
    583     22,   543,  2482,   nil,   533,    21,   nil,   537,   563,   nil,
    584    nil,    88,   nil,   nil,   533,   474,   nil,   nil,   nil,   nil,
    585    nil,   542,  1866,   nil,     2,   581,  1972,  1995,  2027,  2050,
    586    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   275,   322,
    587    414,   685,    45,   480,   461,   458,   456,   351,   nil,   nil,
    588    nil,  2073,   485,   nil,   477,  1749,   470,   nil,   467,   nil,
    589    445,   nil,   235,   nil,   nil,  2534,   411,   409,  2622,   nil,
    590    532,  2692,   nil,   nil,   nil,   nil,    74,   nil,   nil,   nil,
    591    436,   608,    51,   nil,   655,   435,   nil,   419,   412,   nil,
    592    206,   138,   401,  1386,   393,   383,   nil,   nil,   nil,    51,
    593    nil,   890,   nil,   nil,   161,   184,   356,   379,   482,   821,
    594    922,  1464,  1487,  1570,  1639,  1694,  1717,  1926,  1949,  1593,
    595     -2,    21,  1616,    -7,   nil,   506,   nil,     4,   745,   nil,
     613   nil,   732,  2528,   716,   182,  3068,  3043,  2752,  2993,   nil,
    596614   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
    597    nil,   515,   517,  2177,   518,   519,   488,  2137,   491,   nil,
    598    529,   503,   507,  2096,   509,   nil,   nil,  2394,   204,  2271,
    599    nil,   nil,   217,  1843,  2464,   nil,   nil,   nil,   nil,   108,
    600    nil,   nil,   nil,   nil,   536,   nil,   nil,   nil,   nil,   nil,
    601    nil,  1671,   nil,   145,  2253,   184,   nil,  1533,   581,   nil,
    602    nil,   586,   nil,   nil,   nil,   273,   224,    91,   105,   144,
    603    225,   250,   269,   724,   681,   287,   579,   -20,    -5,    -4,
    604     10,   nil,  1510,    72,  1432,   nil,   nil,   nil,   nil,   nil,
    605    nil,   nil,   nil,   nil,   nil,   nil,  1409,  1326,    82,  1280,
    606   1257,  1069,   133,   975,   153,   nil,   nil,   155,   nil,   nil,
    607    216,   nil,    22,   222,   nil,   235,   945,  2324,   nil,   260,
    608    nil,   nil,   234,   nil,   nil,   nil,   867,   106,   nil,   nil,
    609    844,   nil,   nil,   nil,   253,   294,   310,   315,   283,   319,
    610    nil,   727,   nil,   nil,   nil,   329,   nil,   nil,   nil,   334,
    611    nil,   339,   nil,   nil,   nil,   nil,   nil,   nil,   633,   514,
    612    333,   310,   296,   nil,   nil,   nil,   nil,   303,   nil,   362,
    613    332,   nil,   216,   350,   115,   nil,   nil,   385,  1163,   nil ]
     615   nil,   nil,   nil,   624,   nil,   619,   nil,   656,   nil,    38,
     616   nil,    40,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
     617   nil,  2499,   nil,   nil,   nil,   nil,   nil,   510,   nil,    78,
     618   nil,    37,     3,   322,   nil,   680,   -14,   nil,   nil,   nil,
     619   nil,   nil,   nil,   nil,   nil,    20,   183,   nil,   249,  3118,
     620   nil,   278,   429,   421,   nil,   252,   344,   664,   nil,   544,
     621  1392,   nil,   419,   285,   nil,  1473,  2701,   266,    28,   nil,
     622   nil,   nil,  2932,  3093,   214,   193,  2819,   nil,   138,   576,
     623   nil,   200,   654,    22,   nil,   nil,    12,   nil,   nil,    15,
     624     1,   nil,   nil,   nil,   nil,   nil,   137,  1959,   nil,   nil,
     625    55,  2035,  2061,  2086,  2111,   nil,   nil,   nil,   nil,   nil,
     626   nil,   568,   nil,   306,   629,   495,   326,   318,   571,   -20,
     627   672,   673,    64,   nil,   nil,   nil,  1235,   724,   nil,   702,
     628   nil,    22,   682,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
     629   nil,   nil,   nil,   672,  2431,   669,   nil,   161,   nil,   nil,
     630   nil,   nil,   702,   691,   685,   376,   635,   612,   546,   542,
     631  2350,   nil,   nil,   nil,   547,   nil,   545,   281,   nil,   507,
     632   nil,   684,   nil,   nil,   nil,   nil,  3018,   451,   447,  2968,
     633   nil,   440,  2881,   nil,   nil,   nil,   nil,    44,   nil,   410,
     634  2325,   nil,    61,  2300,   343,   368,   nil,   286,   381,   nil,
     635   348,   322,   147,  2173,  2249,   189,   160,   139,   nil,   nil,
     636   nil,  2224,   nil,  2148,   nil,   nil,  1985,   nil,   nil,   nil,
     637   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,  1904,   779,
     638  1853,  1828,  1802,  1777,  1752,  1726,  1701,  1676,  1650,  1625,
     639  1600,  1574,  1549,  1524,  1498,  1443,  1367,   223,   nil,   300,
     640   nil,  1341,   nil,   514,   385,   659,   nil,   nil,  1260,  2457,
     641  1210,   619,  1132,   379,   nil,   nil,    45,   nil,   nil,   nil,
     642   nil,   325,  2794,    -1,  2604,   nil,   nil,   183,  1090,  2906,
     643   nil,   nil,   nil,   nil,   107,   nil,   nil,   nil,   nil,   149,
     644  1065,   nil,   nil,   nil,   nil,   nil,   137,   nil,    82,   nil,
     645   nil,   nil,  1034,   nil,    68,  2629,    23,   nil,    65,   nil,
     646  1009,   nil,   nil,   167,   186,   nil,   nil,   nil,   nil,   170,
     647   131,   621,   567,   559,   557,   520,   503,   417,   423,   464,
     648   334,   326,   350,   351,    14,   nil,   984,   421,   nil,   nil,
     649   754,   nil,   129,   376,   256,   451,   908,   883,   nil,   nil,
     650   nil,   510,   nil,   260,   520,   nil,   539,   855,  2726,   nil,
     651   556,   nil,   nil,   807,   683,   nil,   nil,   nil,   nil,  1878,
     652   nil,   nil,   nil,   950,   180,   629,   631,  1286,   nil,   nil,
     653   nil,   nil,   634,   653,   539,  1316,  1417,  2376,   687,   nil,
     654   nil,   nil,   689,   nil,   693,   nil,   649,   nil,   318,   nil,
     655   nil,   nil,   622,   nil,   nil,   412,   323,   281,   128,   256,
     656   nil,   nil,   nil,   nil,   nil,  2406,   118,   666,    23,   nil,
     657    -2,   nil,   nil,   nil,   nil,   nil,   nil ]
    614658
    615659racc_action_default = [
    616   -176,  -243,    -1,  -243,  -243,   -70,   -71,   -72,   -80,   -81,
    617    -82,   -83,   -84,   -85,   -86,   -87,   -88,   -89,   -90,   -91,
    618    -92,   -93,   -96,   -99,  -243,  -116,  -243,  -129,  -134,  -135,
    619   -177,  -178,  -243,  -180,  -181,  -184,  -185,  -186,  -243,  -232,
    620   -233,  -234,  -235,  -236,  -237,  -238,  -239,   400,  -243,   -76,
    621    -78,  -243,  -137,  -139,  -243,  -145,   -73,   -84,   -86,   -74,
    622    -75,  -183,  -182,   -98,  -243,  -102,  -115,  -243,  -119,  -243,
    623   -128,  -179,  -106,  -108,  -243,   -69,  -243,  -243,  -190,  -191,
    624   -136,  -138,  -243,  -243,  -243,  -146,  -147,   -94,  -243,  -243,
    625    -84,   -85,  -243,  -117,  -243,  -243,  -130,  -132,  -243,  -107,
    626   -109,  -243,  -188,   -77,   -78,    -2,    -3,    -4,    -5,    -6,
    627     -7,    -8,  -243,   -10,   -12,   -23,  -243,  -243,  -243,  -243,
    628    -29,   -30,   -31,   -32,   -33,   -34,   -35,   -37,   -41,   -44,
    629    -47,   -52,   -55,   -57,   -59,   -61,   -63,   -65,   -68,   -79,
    630   -170,  -243,  -243,  -240,  -243,  -243,  -243,  -142,  -243,  -144,
    631   -149,  -151,  -155,  -140,  -148,  -243,   -84,   -85,  -243,  -100,
    632   -243,  -243,  -122,  -121,  -114,  -118,  -243,  -123,  -125,  -126,
    633   -243,  -243,  -243,  -187,  -243,  -243,   -11,  -243,  -243,   -67,
    634   -156,   -20,  -243,  -243,  -243,  -243,   -18,   -19,   -24,  -243,
    635    -25,  -243,   -27,   -28,  -243,  -243,  -243,  -243,  -243,  -243,
    636   -243,  -243,  -243,  -243,  -243,  -243,  -243,  -243,  -243,  -243,
    637   -243,  -243,  -243,  -243,  -174,  -243,  -241,   -35,  -243,  -192,
    638   -193,  -194,  -195,  -196,  -197,  -198,  -199,  -200,  -201,  -202,
    639   -203,  -243,  -243,  -243,  -243,  -243,  -240,  -243,  -243,  -213,
    640   -243,  -243,  -243,  -243,  -243,  -141,  -143,  -243,  -158,  -243,
    641   -153,  -154,  -159,  -243,  -243,  -105,  -104,   -97,  -101,  -243,
    642   -110,  -112,  -113,  -120,  -243,  -131,  -133,  -127,  -189,  -242,
    643     -9,  -243,  -157,  -158,  -243,  -243,   -21,   -20,  -243,   -16,
    644    -17,  -243,   -38,   -39,   -40,   -42,   -43,   -45,   -46,   -48,
    645    -49,   -50,   -51,   -53,   -54,   -56,   -58,   -60,   -62,   -64,
    646   -243,  -171,  -243,  -243,  -243,  -221,  -222,  -223,  -224,  -225,
    647   -226,  -227,  -228,  -229,  -230,  -231,  -243,  -243,  -243,  -243,
    648   -243,  -243,  -243,  -243,  -243,  -215,  -216,  -243,  -218,  -219,
    649   -243,  -152,  -160,  -243,  -166,  -243,  -243,  -243,  -162,  -243,
    650    -95,  -103,  -243,  -124,   -36,   -13,  -243,  -243,   -15,   -26,
    651   -243,  -172,  -175,  -173,  -243,  -243,  -243,  -243,  -243,  -243,
    652   -210,  -243,  -212,  -214,  -217,  -243,  -161,  -167,  -164,  -243,
    653   -168,  -243,  -163,  -111,   -22,   -14,   -66,  -220,  -243,  -243,
    654   -243,  -243,  -243,  -211,  -150,  -165,  -169,  -204,  -206,  -243,
    655   -243,  -209,  -243,  -243,  -243,  -205,  -207,  -243,  -243,  -208 ]
     660  -215,  -269,    -1,  -269,  -269,   -86,   -88,   -90,   -92,   -98,
     661   -99,  -100,  -101,  -102,  -103,  -104,  -105,  -106,  -107,  -108,
     662  -109,  -110,  -111,  -112,  -113,  -114,  -115,  -118,  -121,  -269,
     663  -139,  -269,  -163,  -164,  -165,  -166,  -167,  -168,  -169,  -216,
     664  -217,  -269,  -219,  -220,  -223,  -224,  -225,  -269,   447,  -269,
     665   -94,   -96,  -269,  -171,  -173,  -269,  -180,   -87,  -112,  -114,
     666   -89,   -91,   -93,  -222,  -221,  -120,  -269,  -124,  -138,  -269,
     667  -142,  -269,  -155,  -158,  -218,  -130,  -132,  -269,   -85,  -269,
     668  -269,  -229,  -269,  -170,  -172,  -269,  -269,  -269,  -181,  -182,
     669  -184,  -116,  -269,  -269,  -112,  -113,  -269,  -140,  -269,  -269,
     670  -159,  -161,  -269,  -269,  -129,  -131,  -269,  -227,   -95,   -96,
     671    -2,    -3,    -4,    -5,    -6,    -7,    -8,  -269,   -10,   -12,
     672   -25,  -269,  -269,  -269,  -269,   -31,   -32,   -33,   -34,   -35,
     673   -36,   -37,   -39,   -43,   -46,   -49,   -54,   -57,   -59,   -61,
     674   -63,   -65,   -67,   -69,   -97,  -209,  -269,  -269,  -265,  -269,
     675   -82,  -269,  -269,  -230,  -231,  -232,  -233,  -234,  -235,  -236,
     676  -237,  -238,  -239,  -265,  -269,  -269,  -243,  -269,  -245,  -247,
     677  -248,  -249,  -269,  -269,  -269,  -269,  -269,  -269,  -269,  -269,
     678  -269,  -268,   -37,   -84,  -269,  -176,  -269,  -269,  -179,  -186,
     679  -188,  -192,  -193,  -174,  -183,  -185,  -269,  -112,  -113,  -269,
     680  -122,  -269,  -269,  -145,  -144,  -137,  -141,  -269,  -146,  -148,
     681  -269,  -151,  -269,  -269,  -269,  -269,  -226,  -269,  -269,   -11,
     682  -269,  -269,  -195,  -269,  -269,  -269,  -269,  -269,   -19,   -20,
     683   -26,  -269,   -27,  -269,   -29,   -30,  -269,   -71,   -72,   -73,
     684   -74,   -75,   -76,   -77,   -78,   -79,   -80,   -81,  -269,  -269,
     685  -269,  -269,  -269,  -269,  -269,  -269,  -269,  -269,  -269,  -269,
     686  -269,  -269,  -269,  -269,  -269,  -269,  -269,  -269,  -213,  -269,
     687  -266,  -269,  -250,  -269,  -269,  -269,  -244,  -246,  -269,  -269,
     688  -269,  -269,  -269,  -269,  -261,  -262,  -269,  -263,  -175,  -177,
     689  -178,  -269,  -269,  -197,  -269,  -190,  -191,  -198,  -269,  -269,
     690  -128,  -127,  -119,  -123,  -269,  -133,  -135,  -136,  -143,  -269,
     691  -269,  -149,  -153,  -160,  -162,  -152,  -269,  -156,  -269,  -228,
     692  -267,    -9,  -269,  -196,  -197,  -269,  -269,   -14,  -269,   -23,
     693  -269,   -17,   -18,  -269,  -269,   -70,   -40,   -41,   -42,   -44,
     694   -45,   -47,   -48,   -50,   -51,   -52,   -53,   -55,   -56,   -58,
     695   -60,   -62,   -64,   -66,  -269,  -210,  -269,  -269,   -83,  -240,
     696  -269,  -242,  -269,  -269,  -269,  -269,  -269,  -269,  -260,  -264,
     697  -194,  -269,  -189,  -199,  -269,  -205,  -269,  -269,  -269,  -201,
     698  -269,  -117,  -125,  -269,  -269,  -147,  -150,  -154,  -157,  -269,
     699   -38,   -13,   -15,  -269,  -269,   -28,  -269,  -269,  -211,  -214,
     700  -212,  -241,  -269,  -269,  -269,  -269,  -269,  -269,  -269,  -200,
     701  -206,  -203,  -269,  -207,  -269,  -202,  -269,  -134,  -269,   -24,
     702   -16,   -68,  -251,  -253,  -254,  -269,  -269,  -269,  -269,  -269,
     703  -187,  -204,  -208,  -126,   -21,  -269,  -269,  -269,  -269,  -256,
     704  -269,  -258,   -22,  -252,  -255,  -257,  -259 ]
    656705
    657706racc_goto_table = [
    658     50,     4,   177,   146,    56,    59,    60,   190,   192,   193,
    659    148,    86,   139,   138,   260,    80,   167,   188,   138,   158,
    660    275,   258,   178,    35,    31,   165,   332,    73,    12,    74,
    661     14,     4,   287,   288,    91,   217,    95,   293,   294,   251,
    662    304,   154,   219,     2,    85,   295,    92,   285,   286,   296,
    663     72,   332,   297,    35,    71,   157,    91,   298,    12,    91,
    664     14,    73,    73,    99,   100,   172,    94,   272,   161,   299,
    665    102,   276,   104,   278,   103,    63,   214,   138,   155,   177,
    666     64,   177,   152,   259,    72,    72,   254,   160,    94,    66,
    667    168,    94,   266,    90,   165,   282,   283,   284,   166,   281,
    668    265,    73,   300,   182,   331,   213,    30,   138,   248,   289,
    669    290,   291,   292,   101,   156,    90,   347,   258,    90,    78,
    670    145,     1,   157,   217,    72,   157,   nil,   nil,    91,   nil,
    671    318,   nil,   nil,   327,   nil,   nil,   273,   nil,   nil,   nil,
    672    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   250,   nil,
    673    nil,   nil,   nil,   nil,   160,   nil,   261,   160,   322,   nil,
    674     94,   nil,   nil,   nil,   nil,   nil,   nil,   276,   nil,   nil,
    675    268,   nil,   344,   138,   339,   nil,   nil,   nil,    73,   nil,
    676    nil,   156,   nil,   nil,   156,   nil,   343,    90,   nil,   138,
    677    nil,   nil,   nil,   nil,   354,   nil,   373,   nil,   nil,   nil,
    678    nil,    72,   nil,   nil,   nil,   248,   355,   356,   nil,   358,
    679    359,   217,    80,   217,   104,   nil,   nil,   nil,   360,   nil,
    680    362,   157,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
    681    273,   nil,   nil,   nil,   nil,   nil,   374,   352,   138,   nil,
    682    nil,   nil,   nil,   nil,   nil,   nil,   152,   nil,   152,   nil,
    683    nil,   217,   nil,   160,   nil,   nil,   nil,   369,   383,   nil,
    684    168,   nil,   nil,   nil,   371,   nil,   nil,   nil,   217,   217,
    685    389,   390,   138,   152,   nil,   387,   388,   nil,   nil,   nil,
    686    156,   nil,   217,   nil,   397,   nil,   376,   nil,   217,   395,
    687    nil,   nil,   nil,   nil,   nil,   399,   nil,   nil,   nil,   nil,
     707    51,   144,   145,    81,   183,   182,   184,   281,   186,    23,
     708   267,    95,   208,    83,   206,   305,   303,   313,   328,   169,
     709    25,     4,   199,   230,    57,    60,    61,    62,    75,    89,
     710    40,    99,   168,   221,   198,    95,   296,    77,    95,   220,
     711   373,   182,   232,   234,   235,    65,    96,   207,    23,    76,
     712   304,   366,   343,   344,   345,   346,    75,    75,    90,    25,
     713     4,   194,   214,   215,    66,   104,   105,   323,   145,    74,
     714   202,   373,   196,   107,    68,   109,    94,    76,    76,   347,
     715   348,   339,   340,   183,   182,   274,   341,   342,    98,   108,
     716   195,   236,   187,    88,   209,   372,   353,   352,    75,   197,
     717    94,   152,   286,    94,   169,   359,    39,   361,   351,   106,
     718   350,   201,    98,   349,     2,    98,   303,   277,   167,    76,
     719   206,   313,   225,   313,   394,     1,   299,   nil,   nil,   183,
     720   182,   311,   183,   182,   314,   406,   407,   nil,   198,   nil,
     721   nil,   198,   nil,   nil,    95,   326,   329,   333,   109,   334,
     722   336,   337,   338,   220,   nil,   220,   nil,   nil,   335,   nil,
     723   nil,   nil,   nil,   nil,   293,   nil,   nil,   nil,   182,   182,
     724   182,   182,   182,   182,   182,   182,   182,   182,   182,   182,
     725   182,   182,   182,   182,   182,   182,   152,   295,   354,   nil,
     726   nil,   nil,   401,   358,   nil,   324,   nil,   306,   417,   nil,
     727   362,   363,   364,   197,   nil,   nil,   197,   nil,   nil,    94,
     728   nil,   nil,    75,   319,    75,   201,   nil,   nil,   201,   367,
     729   380,    98,   nil,   385,   390,   nil,   nil,   nil,   nil,   183,
     730   182,   386,   nil,    76,   422,    76,   424,   nil,   nil,   nil,
     731   nil,   198,   182,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
     732   nil,   nil,   329,   418,    83,   nil,   nil,   nil,   nil,   439,
     733   nil,   441,   nil,   nil,   nil,   nil,   nil,   293,   443,   nil,
     734   445,   nil,   446,   nil,   nil,   nil,   nil,   399,   145,   nil,
     735   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
     736   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   324,   412,
     737   414,   152,   183,   182,   416,   209,   197,   nil,   nil,   nil,
     738   nil,   145,   nil,   nil,   nil,   419,   421,   182,   201,   nil,
     739   nil,   nil,   nil,   nil,   nil,   nil,   nil,   425,   426,   428,
    688740   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
    689741   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
    690    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
    691    nil,   nil,   nil,   nil,   nil,   nil,   152,   nil,   261 ]
    692 
    693 racc_goto_check = [
    694     32,    27,     6,    25,    27,    27,    27,    10,    10,    10,
    695     57,    55,    33,    24,    45,    56,    51,    12,    24,    39,
    696      8,    42,    13,    26,    64,    49,    61,     9,    34,    44,
    697     36,    27,    15,    15,    35,    10,    53,    17,    17,    60,
    698     79,    55,    70,     2,     9,    18,    48,    14,    14,    19,
    699     30,    61,    20,    26,    64,    35,    35,    21,    34,    35,
    700     36,     9,     9,    44,    44,    53,    27,    60,    48,    22,
    701     32,     6,    32,     6,    31,    38,    33,    24,    40,     6,
    702     41,     6,    27,    43,    30,    30,    39,    27,    27,    47,
    703     32,    27,    25,    34,    49,    12,    12,    12,    50,    13,
    704     54,     9,     6,     9,    59,    62,    63,    24,    55,    16,
    705     16,    16,    16,    67,    34,    34,     8,    42,    34,    68,
    706     69,     1,    35,    10,    30,    35,   nil,   nil,    35,   nil,
    707     70,   nil,   nil,     6,   nil,   nil,    55,   nil,   nil,   nil,
    708    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    32,   nil,
    709    nil,   nil,   nil,   nil,    27,   nil,    32,    27,    25,   nil,
    710     27,   nil,   nil,   nil,   nil,   nil,   nil,     6,   nil,   nil,
    711     32,   nil,    12,    24,    25,   nil,   nil,   nil,     9,   nil,
    712    nil,    34,   nil,   nil,    34,   nil,    51,    34,   nil,    24,
    713    nil,   nil,   nil,   nil,     6,   nil,    45,   nil,   nil,   nil,
    714    nil,    30,   nil,   nil,   nil,    55,     6,     6,   nil,     6,
    715      6,    10,    56,    10,    32,   nil,   nil,   nil,    70,   nil,
    716     70,    35,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
    717     55,   nil,   nil,   nil,   nil,   nil,     6,    33,    24,   nil,
    718    nil,   nil,   nil,   nil,   nil,   nil,    27,   nil,    27,   nil,
    719    nil,    10,   nil,    27,   nil,   nil,   nil,    25,    70,   nil,
    720     32,   nil,   nil,   nil,    57,   nil,   nil,   nil,    10,    10,
    721      6,     6,    24,    27,   nil,    70,    70,   nil,   nil,   nil,
    722     34,   nil,    10,   nil,     6,   nil,    24,   nil,    10,    70,
    723    nil,   nil,   nil,   nil,   nil,    70,   nil,   nil,   nil,   nil,
     742   nil,   nil,   nil,   nil,   nil,   423,   399,   145,   nil,   nil,
    724743   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
    725744   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
     745   306 ]
     746
     747racc_goto_check = [
     748    36,    37,    12,    72,    26,    13,    28,    73,    60,    38,
     749    11,    39,    55,    59,    53,    49,    46,    57,     8,    29,
     750    40,    30,    43,    15,    30,    30,    30,    30,    33,    58,
     751    68,    56,    84,    10,    39,    39,    65,    48,    39,     6,
     752    66,    13,    13,    13,    13,    42,    52,    54,    38,     9,
     753    47,    75,    18,    18,    18,    18,    33,    33,     9,    40,
     754    30,    58,    56,    56,    45,    48,    48,    65,    12,    68,
     755    52,    66,    44,    36,    51,    36,    38,     9,     9,    19,
     756    19,    16,    16,    26,    13,    28,    17,    17,    30,    35,
     757     9,    27,    61,    62,    36,    64,    24,    23,    33,    38,
     758    38,    30,     6,    38,    29,    73,    67,    73,    22,    71,
     759    21,    30,    30,    20,     2,    30,    46,    84,    83,     9,
     760    53,    57,     9,    57,     8,     1,    43,   nil,   nil,    26,
     761    13,    28,    26,    13,    28,    75,    75,   nil,    39,   nil,
     762   nil,    39,   nil,   nil,    39,     6,    12,    10,    36,    10,
     763    15,    15,    15,     6,   nil,     6,   nil,   nil,    12,   nil,
     764   nil,   nil,   nil,   nil,    58,   nil,   nil,   nil,    13,    13,
     765    13,    13,    13,    13,    13,    13,    13,    13,    13,    13,
     766    13,    13,    13,    13,    13,    13,    30,    36,     6,   nil,
     767   nil,   nil,    73,    12,   nil,    58,   nil,    36,    49,   nil,
     768     6,     6,     6,    38,   nil,   nil,    38,   nil,   nil,    38,
     769   nil,   nil,    33,    36,    33,    30,   nil,   nil,    30,    29,
     770    12,    30,   nil,    55,    15,   nil,   nil,   nil,   nil,    26,
     771    13,    28,   nil,     9,    73,     9,    73,   nil,   nil,   nil,
     772   nil,    39,    13,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
     773   nil,   nil,    12,    11,    59,   nil,   nil,   nil,   nil,    73,
     774   nil,    73,   nil,   nil,   nil,   nil,   nil,    58,    73,   nil,
     775    73,   nil,    73,   nil,   nil,   nil,   nil,    37,    12,   nil,
    726776   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
    727    nil,   nil,   nil,   nil,   nil,   nil,    27,   nil,    32 ]
     777   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    58,    12,
     778    60,    30,    26,    13,    28,    36,    38,   nil,   nil,   nil,
     779   nil,    12,   nil,   nil,   nil,    12,    26,    13,    30,   nil,
     780   nil,   nil,   nil,   nil,   nil,   nil,   nil,     6,     6,     6,
     781   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
     782   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
     783   nil,   nil,   nil,   nil,   nil,    72,    37,    12,   nil,   nil,
     784   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
     785   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
     786    36 ]
    728787
    729788racc_goto_pointer = [
    730    nil,   121,    43,   nil,   nil,   nil,  -110,   nil,  -161,   -11,
    731   -110,   nil,   -99,   -90,  -150,  -167,   -92,  -168,  -162,  -159,
    732   -157,  -153,  -142,   nil,   -64,   -79,    21,    -1,   nil,   nil,
    733     12,    -2,    -4,   -65,    26,   -33,    28,   nil,    53,   -69,
    734     -9,    58,  -137,   -77,    -9,  -146,   nil,    65,   -21,   -67,
    735      4,   -78,   nil,   -33,   -70,   -44,   -36,   -73,   nil,  -143,
    736   -113,  -222,   -36,   104,    22,   nil,   nil,    39,    69,    41,
    737   -103,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,  -177 ]
     789   nil,   125,   114,   nil,   nil,   nil,   -78,   nil,  -206,     2,
     790   -84,  -136,   -78,   -80,   nil,   -98,  -170,  -167,  -203,  -180,
     791  -148,  -152,  -155,  -167,  -169,   nil,   -81,   -40,   -79,   -63,
     792    19,   nil,   nil,   -19,   nil,    10,    -4,   -79,     7,   -58,
     793    18,   nil,    18,   -70,   -19,    37,  -183,  -151,   -10,  -186,
     794   nil,    45,   -23,   -82,   -51,   -86,   -40,  -195,   -27,   -39,
     795   -78,     6,    37,   nil,  -197,  -155,  -253,   104,    28,   nil,
     796   nil,    32,   -48,  -168,   nil,  -231,   nil,   nil,   nil,   nil,
     797   nil,   nil,   nil,    36,   -50 ]
    738798
    739799racc_goto_default = [
    740    nil,   nil,   nil,   114,   105,   111,   244,   115,   nil,     7,
    741    126,   116,   127,   nil,   128,   129,   130,   131,   132,   133,
    742    134,   135,   136,   137,   179,   140,   220,   218,    48,     5,
    743      6,    49,    84,   nil,    57,    13,    58,    22,   nil,   nil,
    744    nil,   nil,   159,   nil,   180,   nil,    24,   nil,   nil,    93,
    745    nil,   nil,    26,   nil,    96,    51,    52,   335,   150,   151,
    746    333,   252,   nil,   nil,   nil,    33,    34,   nil,   227,   nil,
    747    nil,   221,   222,   223,   224,   225,   226,   228,   229,   nil ]
     800   nil,   nil,   nil,   119,   110,   116,   151,   120,   nil,     7,
     801   nil,   nil,   150,   131,   121,   132,   133,   134,   135,   136,
     802   137,   138,   139,   140,   141,   142,   143,   nil,   nil,    44,
     803   191,    49,     5,     6,     8,    50,    87,   268,    58,    24,
     804    59,    27,   nil,   nil,   nil,   nil,   200,   nil,   222,   nil,
     805    29,   nil,   nil,    97,   nil,   nil,   nil,   100,    52,    53,
     806   376,   nil,   nil,   189,   190,   374,   297,   nil,   nil,    42,
     807    43,   nil,   154,   170,   153,   155,   156,   157,   158,   159,
     808   160,   161,   162,   nil,   nil ]
    748809
    749810racc_reduce_table = [
    750811  0, 0, :racc_error,
    751   1, 97, :_reduce_none,
    752   1, 99, :_reduce_2,
    753   1, 99, :_reduce_3,
    754   1, 99, :_reduce_4,
    755   1, 99, :_reduce_5,
    756   1, 99, :_reduce_6,
    757   1, 99, :_reduce_7,
    758   1, 99, :_reduce_8,
    759   3, 99, :_reduce_9,
    760   1, 101, :_reduce_10,
    761   2, 101, :_reduce_11,
    762   1, 103, :_reduce_none,
    763   4, 103, :_reduce_none,
    764   5, 103, :_reduce_none,
    765   4, 103, :_reduce_15,
    766   3, 103, :_reduce_16,
    767   3, 103, :_reduce_17,
    768   2, 103, :_reduce_18,
    769   2, 103, :_reduce_19,
    770   0, 104, :_reduce_none,
     812  1, 98, :_reduce_none,
     813  1, 100, :_reduce_2,
     814  1, 100, :_reduce_3,
     815  1, 100, :_reduce_4,
     816  1, 100, :_reduce_5,
     817  1, 100, :_reduce_6,
     818  1, 100, :_reduce_7,
     819  1, 100, :_reduce_8,
     820  3, 100, :_reduce_9,
     821  1, 102, :_reduce_10,
     822  2, 102, :_reduce_11,
    771823  1, 104, :_reduce_none,
     824  4, 104, :_reduce_13,
    772825  3, 104, :_reduce_none,
    773   1, 106, :_reduce_none,
    774   2, 106, :_reduce_24,
    775   2, 106, :_reduce_25,
    776   4, 106, :_reduce_26,
    777   2, 106, :_reduce_27,
    778   2, 106, :_reduce_28,
    779   1, 107, :_reduce_29,
    780   1, 107, :_reduce_30,
    781   1, 107, :_reduce_31,
    782   1, 107, :_reduce_32,
    783   1, 107, :_reduce_33,
    784   1, 107, :_reduce_34,
    785   1, 108, :_reduce_none,
    786   4, 108, :_reduce_36,
     826  4, 104, :_reduce_none,
     827  5, 104, :_reduce_none,
     828  3, 104, :_reduce_17,
     829  3, 104, :_reduce_18,
     830  2, 104, :_reduce_19,
     831  2, 104, :_reduce_20,
     832  6, 104, :_reduce_none,
     833  7, 104, :_reduce_none,
     834  1, 105, :_reduce_none,
     835  3, 105, :_reduce_none,
    787836  1, 110, :_reduce_none,
    788   3, 110, :_reduce_38,
    789   3, 110, :_reduce_39,
    790   3, 110, :_reduce_40,
    791   1, 111, :_reduce_none,
    792   3, 111, :_reduce_42,
    793   3, 111, :_reduce_43,
     837  2, 110, :_reduce_26,
     838  2, 110, :_reduce_27,
     839  4, 110, :_reduce_28,
     840  2, 110, :_reduce_29,
     841  2, 110, :_reduce_30,
     842  1, 111, :_reduce_31,
     843  1, 111, :_reduce_32,
     844  1, 111, :_reduce_33,
     845  1, 111, :_reduce_34,
     846  1, 111, :_reduce_35,
     847  1, 111, :_reduce_36,
    794848  1, 112, :_reduce_none,
    795   3, 112, :_reduce_45,
    796   3, 112, :_reduce_46,
     849  4, 112, :_reduce_38,
    797850  1, 113, :_reduce_none,
    798   3, 113, :_reduce_48,
    799   3, 113, :_reduce_49,
    800   3, 113, :_reduce_50,
    801   3, 113, :_reduce_51,
     851  3, 113, :_reduce_40,
     852  3, 113, :_reduce_41,
     853  3, 113, :_reduce_42,
    802854  1, 114, :_reduce_none,
    803   3, 114, :_reduce_53,
    804   3, 114, :_reduce_54,
     855  3, 114, :_reduce_44,
     856  3, 114, :_reduce_45,
    805857  1, 115, :_reduce_none,
    806   3, 115, :_reduce_56,
     858  3, 115, :_reduce_47,
     859  3, 115, :_reduce_48,
    807860  1, 116, :_reduce_none,
    808   3, 116, :_reduce_58,
     861  3, 116, :_reduce_50,
     862  3, 116, :_reduce_51,
     863  3, 116, :_reduce_52,
     864  3, 116, :_reduce_53,
    809865  1, 117, :_reduce_none,
    810   3, 117, :_reduce_60,
     866  3, 117, :_reduce_55,
     867  3, 117, :_reduce_56,
    811868  1, 118, :_reduce_none,
    812   3, 118, :_reduce_62,
     869  3, 118, :_reduce_58,
    813870  1, 119, :_reduce_none,
    814   3, 119, :_reduce_64,
     871  3, 119, :_reduce_60,
    815872  1, 120, :_reduce_none,
    816   5, 120, :_reduce_66,
    817   1, 102, :_reduce_67,
    818   1, 121, :_reduce_68,
    819   3, 122, :_reduce_none,
    820   1, 123, :_reduce_70,
     873  3, 120, :_reduce_62,
     874  1, 121, :_reduce_none,
     875  3, 121, :_reduce_64,
     876  1, 122, :_reduce_none,
     877  3, 122, :_reduce_66,
    821878  1, 123, :_reduce_none,
    822   1, 123, :_reduce_72,
    823   2, 123, :_reduce_73,
    824   2, 123, :_reduce_74,
    825   2, 123, :_reduce_75,
    826   1, 124, :_reduce_76,
    827   3, 124, :_reduce_77,
     879  5, 123, :_reduce_68,
     880  1, 109, :_reduce_none,
     881  3, 109, :_reduce_none,
     882  1, 124, :_reduce_none,
     883  1, 124, :_reduce_none,
     884  1, 124, :_reduce_none,
     885  1, 124, :_reduce_none,
     886  1, 124, :_reduce_none,
     887  1, 124, :_reduce_none,
     888  1, 124, :_reduce_none,
     889  1, 124, :_reduce_none,
     890  1, 124, :_reduce_none,
     891  1, 124, :_reduce_none,
     892  1, 124, :_reduce_none,
     893  1, 103, :_reduce_82,
     894  3, 103, :_reduce_83,
     895  1, 125, :_reduce_84,
     896  3, 126, :_reduce_none,
     897  1, 127, :_reduce_86,
     898  2, 127, :_reduce_87,
    828899  1, 127, :_reduce_none,
    829   3, 127, :_reduce_79,
    830   1, 126, :_reduce_80,
    831   1, 126, :_reduce_81,
    832   1, 126, :_reduce_82,
    833   1, 126, :_reduce_83,
    834   1, 126, :_reduce_84,
    835   1, 126, :_reduce_85,
    836   1, 126, :_reduce_86,
    837   1, 126, :_reduce_87,
    838   1, 126, :_reduce_88,
    839   1, 126, :_reduce_89,
    840   1, 126, :_reduce_90,
    841   1, 126, :_reduce_91,
    842   1, 126, :_reduce_92,
    843   1, 126, :_reduce_93,
    844   0, 136, :_reduce_94,
    845   6, 130, :_reduce_95,
    846   0, 137, :_reduce_96,
    847   5, 130, :_reduce_97,
    848   2, 130, :_reduce_98,
    849   1, 133, :_reduce_99,
    850   1, 135, :_reduce_none,
    851   2, 135, :_reduce_none,
    852   1, 134, :_reduce_102,
    853   3, 138, :_reduce_103,
    854   2, 138, :_reduce_none,
    855   2, 138, :_reduce_none,
     900  2, 127, :_reduce_89,
     901  1, 127, :_reduce_90,
     902  2, 127, :_reduce_91,
     903  1, 127, :_reduce_none,
     904  2, 127, :_reduce_none,
     905  1, 128, :_reduce_94,
     906  3, 128, :_reduce_95,
     907  1, 132, :_reduce_none,
     908  3, 132, :_reduce_97,
     909  1, 129, :_reduce_none,
     910  1, 129, :_reduce_none,
     911  1, 129, :_reduce_none,
     912  1, 129, :_reduce_none,
     913  1, 130, :_reduce_102,
     914  1, 130, :_reduce_103,
     915  1, 130, :_reduce_104,
     916  1, 130, :_reduce_105,
     917  1, 130, :_reduce_106,
     918  1, 130, :_reduce_107,
     919  1, 130, :_reduce_108,
     920  1, 130, :_reduce_109,
     921  1, 130, :_reduce_110,
     922  1, 130, :_reduce_111,
     923  1, 130, :_reduce_112,
     924  1, 130, :_reduce_113,
     925  1, 130, :_reduce_114,
     926  1, 130, :_reduce_115,
     927  0, 141, :_reduce_116,
     928  6, 135, :_reduce_117,
     929  0, 142, :_reduce_118,
     930  5, 135, :_reduce_119,
     931  2, 135, :_reduce_120,
     932  1, 138, :_reduce_121,
    856933  1, 140, :_reduce_none,
    857   2, 140, :_reduce_107,
    858   1, 140, :_reduce_108,
    859   2, 140, :_reduce_109,
    860   1, 139, :_reduce_110,
    861   3, 139, :_reduce_111,
    862   1, 141, :_reduce_none,
    863   5, 131, :_reduce_none,
    864   4, 131, :_reduce_none,
    865   2, 131, :_reduce_none,
    866   1, 142, :_reduce_116,
    867   1, 144, :_reduce_none,
    868   2, 144, :_reduce_none,
    869   1, 143, :_reduce_none,
    870   3, 145, :_reduce_none,
    871   2, 145, :_reduce_none,
    872   2, 145, :_reduce_none,
     934  2, 140, :_reduce_none,
     935  1, 139, :_reduce_124,
     936  3, 143, :_reduce_125,
     937  5, 143, :_reduce_126,
     938  2, 143, :_reduce_none,
     939  2, 143, :_reduce_none,
     940  2, 145, :_reduce_129,
     941  1, 145, :_reduce_none,
     942  2, 145, :_reduce_131,
     943  1, 145, :_reduce_132,
     944  1, 144, :_reduce_133,
     945  3, 144, :_reduce_134,
    873946  1, 146, :_reduce_none,
    874   3, 146, :_reduce_none,
    875   1, 147, :_reduce_none,
    876   4, 132, :_reduce_none,
    877   5, 132, :_reduce_none,
    878   2, 132, :_reduce_none,
    879   1, 148, :_reduce_129,
     947  5, 136, :_reduce_none,
     948  4, 136, :_reduce_none,
     949  2, 136, :_reduce_none,
     950  1, 147, :_reduce_139,
    880951  1, 149, :_reduce_none,
    881   3, 149, :_reduce_none,
    882   1, 150, :_reduce_none,
     952  2, 149, :_reduce_none,
     953  1, 148, :_reduce_none,
    883954  3, 150, :_reduce_none,
    884   1, 105, :_reduce_134,
    885   1, 105, :_reduce_135,
    886   2, 128, :_reduce_136,
    887   1, 128, :_reduce_none,
    888   2, 128, :_reduce_138,
    889   1, 152, :_reduce_139,
    890   3, 152, :_reduce_140,
    891   4, 152, :_reduce_141,
    892   3, 152, :_reduce_142,
    893   4, 152, :_reduce_143,
    894   3, 152, :_reduce_144,
    895   1, 151, :_reduce_145,
    896   2, 151, :_reduce_146,
    897   2, 151, :_reduce_147,
    898   3, 151, :_reduce_148,
     955  2, 150, :_reduce_none,
     956  2, 150, :_reduce_none,
     957  1, 151, :_reduce_none,
     958  3, 151, :_reduce_none,
     959  1, 152, :_reduce_none,
     960  2, 152, :_reduce_none,
     961  3, 152, :_reduce_none,
     962  4, 137, :_reduce_none,
     963  5, 137, :_reduce_none,
     964  5, 137, :_reduce_none,
     965  6, 137, :_reduce_none,
     966  2, 137, :_reduce_none,
     967  5, 137, :_reduce_none,
     968  6, 137, :_reduce_none,
     969  2, 137, :_reduce_none,
    899970  1, 153, :_reduce_none,
    900   5, 153, :_reduce_none,
     971  3, 153, :_reduce_none,
    901972  1, 154, :_reduce_none,
    902973  3, 154, :_reduce_none,
    903   2, 155, :_reduce_none,
    904   2, 155, :_reduce_none,
    905   1, 155, :_reduce_none,
    906   1, 109, :_reduce_none,
    907   2, 109, :_reduce_none,
    908   1, 156, :_reduce_none,
    909   1, 156, :_reduce_none,
    910   2, 156, :_reduce_none,
    911   3, 157, :_reduce_none,
    912   2, 157, :_reduce_none,
    913   3, 157, :_reduce_none,
    914   3, 157, :_reduce_none,
    915   4, 157, :_reduce_none,
    916   2, 157, :_reduce_166,
    917   3, 157, :_reduce_none,
    918   3, 157, :_reduce_168,
    919   4, 157, :_reduce_none,
    920   1, 129, :_reduce_170,
    921   3, 129, :_reduce_171,
    922   4, 129, :_reduce_172,
    923   4, 129, :_reduce_173,
    924   1, 158, :_reduce_174,
    925   3, 158, :_reduce_175,
    926   0, 98, :_reduce_none,
    927   2, 98, :_reduce_none,
     974  1, 106, :_reduce_163,
     975  1, 106, :_reduce_none,
     976  1, 106, :_reduce_165,
     977  1, 131, :_reduce_none,
     978  1, 131, :_reduce_none,
     979  1, 131, :_reduce_none,
     980  1, 131, :_reduce_none,
     981  2, 133, :_reduce_170,
     982  1, 133, :_reduce_none,
     983  2, 133, :_reduce_172,
     984  1, 156, :_reduce_173,
     985  3, 156, :_reduce_174,
     986  4, 156, :_reduce_175,
     987  3, 156, :_reduce_176,
     988  4, 156, :_reduce_177,
     989  4, 156, :_reduce_none,
     990  3, 156, :_reduce_179,
     991  1, 155, :_reduce_180,
     992  2, 155, :_reduce_181,
     993  2, 155, :_reduce_182,
     994  3, 155, :_reduce_183,
    928995  1, 159, :_reduce_none,
    929996  2, 159, :_reduce_none,
     997  1, 157, :_reduce_none,
     998  5, 157, :_reduce_none,
    930999  1, 160, :_reduce_none,
    931   1, 160, :_reduce_none,
    932   2, 160, :_reduce_none,
    933   2, 160, :_reduce_none,
    934   1, 160, :_reduce_none,
    935   1, 160, :_reduce_none,
    936   1, 160, :_reduce_none,
    937   4, 161, :_reduce_187,
    938   1, 163, :_reduce_188,
    939   3, 163, :_reduce_189,
    940   3, 162, :_reduce_none,
    941   0, 165, :_reduce_none,
     1000  3, 160, :_reduce_none,
     1001  2, 161, :_reduce_none,
     1002  2, 161, :_reduce_none,
     1003  1, 161, :_reduce_none,
     1004  1, 158, :_reduce_none,
     1005  3, 158, :_reduce_none,
     1006  1, 107, :_reduce_none,
     1007  2, 107, :_reduce_none,
     1008  1, 162, :_reduce_none,
     1009  1, 162, :_reduce_none,
     1010  2, 162, :_reduce_none,
     1011  3, 163, :_reduce_none,
     1012  2, 163, :_reduce_none,
     1013  3, 163, :_reduce_none,
     1014  3, 163, :_reduce_none,
     1015  4, 163, :_reduce_none,
     1016  2, 163, :_reduce_205,
     1017  3, 163, :_reduce_none,
     1018  3, 163, :_reduce_207,
     1019  4, 163, :_reduce_none,
     1020  1, 134, :_reduce_209,
     1021  3, 134, :_reduce_210,
     1022  4, 134, :_reduce_211,
     1023  4, 134, :_reduce_212,
     1024  1, 108, :_reduce_213,
     1025  3, 108, :_reduce_214,
     1026  0, 99, :_reduce_none,
     1027  2, 99, :_reduce_none,
     1028  1, 164, :_reduce_none,
     1029  2, 164, :_reduce_none,
     1030  1, 165, :_reduce_none,
     1031  1, 165, :_reduce_none,
    9421032  2, 165, :_reduce_none,
    943   1, 166, :_reduce_none,
    944   1, 166, :_reduce_none,
    945   1, 166, :_reduce_none,
    946   1, 166, :_reduce_none,
    947   1, 166, :_reduce_none,
    948   1, 166, :_reduce_none,
    949   1, 166, :_reduce_none,
    950   1, 166, :_reduce_none,
    951   1, 166, :_reduce_none,
    952   1, 166, :_reduce_none,
    953   1, 166, :_reduce_none,
    954   5, 167, :_reduce_none,
    955   7, 167, :_reduce_none,
    956   5, 168, :_reduce_none,
    957   7, 169, :_reduce_none,
    958   9, 170, :_reduce_none,
    959   5, 171, :_reduce_none,
    960   3, 172, :_reduce_none,
    961   4, 172, :_reduce_none,
    962   3, 172, :_reduce_none,
    963   3, 164, :_reduce_none,
    964   3, 173, :_reduce_none,
    965   2, 173, :_reduce_none,
    966   2, 173, :_reduce_none,
    967   3, 173, :_reduce_none,
    968   2, 173, :_reduce_none,
    969   2, 174, :_reduce_none,
    970   4, 174, :_reduce_none,
    971   1, 175, :_reduce_none,
    972   1, 175, :_reduce_none,
    973   1, 175, :_reduce_none,
    974   1, 175, :_reduce_none,
    975   1, 175, :_reduce_none,
    976   1, 175, :_reduce_none,
    977   1, 175, :_reduce_none,
    978   1, 175, :_reduce_none,
    979   1, 175, :_reduce_none,
    980   1, 175, :_reduce_none,
    981   1, 175, :_reduce_none,
    982   1, 125, :_reduce_none,
    983   1, 125, :_reduce_none,
    984   1, 125, :_reduce_none,
    985   1, 125, :_reduce_none,
    986   1, 125, :_reduce_none,
    987   1, 125, :_reduce_none,
    988   1, 125, :_reduce_none,
    989   1, 125, :_reduce_none,
    990   1, 100, :_reduce_240,
    991   2, 100, :_reduce_241,
    992   3, 100, :_reduce_242 ]
    993 
    994 racc_reduce_n = 243
    995 
    996 racc_shift_n = 400
     1033  2, 165, :_reduce_none,
     1034  1, 165, :_reduce_none,
     1035  1, 165, :_reduce_none,
     1036  1, 165, :_reduce_none,
     1037  4, 166, :_reduce_226,
     1038  1, 168, :_reduce_227,
     1039  3, 168, :_reduce_228,
     1040  3, 167, :_reduce_none,
     1041  1, 170, :_reduce_none,
     1042  1, 170, :_reduce_none,
     1043  1, 170, :_reduce_none,
     1044  1, 170, :_reduce_none,
     1045  1, 170, :_reduce_none,
     1046  1, 170, :_reduce_none,
     1047  1, 170, :_reduce_none,
     1048  1, 170, :_reduce_none,
     1049  1, 170, :_reduce_none,
     1050  1, 170, :_reduce_none,
     1051  3, 171, :_reduce_none,
     1052  4, 171, :_reduce_none,
     1053  3, 171, :_reduce_none,
     1054  2, 169, :_reduce_none,
     1055  3, 169, :_reduce_none,
     1056  1, 180, :_reduce_none,
     1057  2, 180, :_reduce_none,
     1058  1, 181, :_reduce_none,
     1059  1, 181, :_reduce_none,
     1060  1, 172, :_reduce_none,
     1061  2, 172, :_reduce_none,
     1062  5, 173, :_reduce_none,
     1063  7, 173, :_reduce_none,
     1064  5, 177, :_reduce_none,
     1065  5, 174, :_reduce_none,
     1066  7, 175, :_reduce_none,
     1067  6, 176, :_reduce_none,
     1068  7, 176, :_reduce_none,
     1069  6, 176, :_reduce_none,
     1070  7, 176, :_reduce_none,
     1071  3, 178, :_reduce_none,
     1072  2, 178, :_reduce_none,
     1073  2, 178, :_reduce_none,
     1074  2, 178, :_reduce_none,
     1075  3, 178, :_reduce_none,
     1076  1, 101, :_reduce_265,
     1077  2, 101, :_reduce_266,
     1078  3, 101, :_reduce_267,
     1079  1, 179, :_reduce_268 ]
     1080
     1081racc_reduce_n = 269
     1082
     1083racc_shift_n = 447
    9971084
    9981085racc_token_table = {
     
    10141101  "++" => 15,
    10151102  "--" => 16,
    1016   "," => 17,
    1017   :SIZEOF => 18,
    1018   "&" => 19,
    1019   "*" => 20,
    1020   "+" => 21,
    1021   "-" => 22,
    1022   "~" => 23,
    1023   "!" => 24,
    1024   "/" => 25,
    1025   "%" => 26,
    1026   "<<" => 27,
    1027   ">>" => 28,
    1028   "<" => 29,
    1029   ">" => 30,
    1030   "<=" => 31,
    1031   ">=" => 32,
    1032   "==" => 33,
    1033   "!=" => 34,
    1034   "^" => 35,
    1035   "|" => 36,
    1036   "&&" => 37,
    1037   "||" => 38,
    1038   "?" => 39,
    1039   ":" => 40,
    1040   ";" => 41,
    1041   "=" => 42,
    1042   :VOID => 43,
    1043   :FLOAT => 44,
    1044   :DOUBLE => 45,
    1045   :BOOL => 46,
    1046   :TYPE_NAME => 47,
    1047   :CHAR => 48,
    1048   :SHORT => 49,
    1049   :INT => 50,
    1050   :LONG => 51,
    1051   :SIGNED => 52,
    1052   :UNSIGNED => 53,
    1053   "{" => 54,
    1054   "}" => 55,
    1055   :STRUCT => 56,
    1056   :UNION => 57,
    1057   :ENUM => 58,
    1058   :CONST => 59,
    1059   :VOLATILE => 60,
    1060   :C_EXP => 61,
    1061   :EXTENSION => 62,
    1062   :TYPEDEF => 63,
    1063   :IF => 64,
    1064   :ELSE => 65,
    1065   :WHILE => 66,
    1066   :DO => 67,
    1067   :FOR => 68,
    1068   :SWITCH => 69,
    1069   :infunc_statment => 70,
    1070   :CASE => 71,
    1071   :DEFAULT => 72,
    1072   :GOTO => 73,
    1073   :CONTINUE => 74,
    1074   :BREAK => 75,
    1075   :RETURN => 76,
    1076   "+=" => 77,
    1077   "-=" => 78,
    1078   "*=" => 79,
    1079   "/=" => 80,
    1080   "%=" => 81,
    1081   "<<=" => 82,
    1082   ">>=" => 83,
    1083   "&=" => 84,
    1084   "|=" => 85,
    1085   "^=" => 86,
    1086   :__INLINE__ => 87,
    1087   :INLINE => 88,
    1088   :__INLINE => 89,
    1089   :CINLINE => 90,
    1090   :EXTERN => 91,
    1091   :STATIC => 92,
    1092   :AUTO => 93,
    1093   :REGISTER => 94,
    1094   "::" => 95 }
    1095 
    1096 racc_nt_base = 96
     1103  "{" => 17,
     1104  "}" => 18,
     1105  "," => 19,
     1106  :SIZEOF => 20,
     1107  "&" => 21,
     1108  "*" => 22,
     1109  "+" => 23,
     1110  "-" => 24,
     1111  "~" => 25,
     1112  "!" => 26,
     1113  "/" => 27,
     1114  "%" => 28,
     1115  "<<" => 29,
     1116  ">>" => 30,
     1117  "<" => 31,
     1118  ">" => 32,
     1119  "<=" => 33,
     1120  ">=" => 34,
     1121  "==" => 35,
     1122  "!=" => 36,
     1123  "^" => 37,
     1124  "|" => 38,
     1125  "&&" => 39,
     1126  "||" => 40,
     1127  "?" => 41,
     1128  ":" => 42,
     1129  "=" => 43,
     1130  "+=" => 44,
     1131  "-=" => 45,
     1132  "*=" => 46,
     1133  "/=" => 47,
     1134  "%=" => 48,
     1135  "<<=" => 49,
     1136  ">>=" => 50,
     1137  "&=" => 51,
     1138  "|=" => 52,
     1139  "^=" => 53,
     1140  ";" => 54,
     1141  :EXTERN => 55,
     1142  :STATIC => 56,
     1143  :AUTO => 57,
     1144  :REGISTER => 58,
     1145  :VOID => 59,
     1146  :CHAR => 60,
     1147  :SHORT => 61,
     1148  :INT => 62,
     1149  :LONG => 63,
     1150  :FLOAT => 64,
     1151  :DOUBLE => 65,
     1152  :SIGNED => 66,
     1153  :UNSIGNED => 67,
     1154  :BOOL => 68,
     1155  :TYPE_NAME => 69,
     1156  :STRUCT => 70,
     1157  :UNION => 71,
     1158  :ENUM => 72,
     1159  :CONST => 73,
     1160  :RESTRICT => 74,
     1161  :VOLATILE => 75,
     1162  :__INLINE__ => 76,
     1163  :INLINE => 77,
     1164  :__INLINE => 78,
     1165  :CINLINE => 79,
     1166  :C_EXP => 80,
     1167  :EXTENSION => 81,
     1168  :TYPEDEF => 82,
     1169  :CASE => 83,
     1170  :DEFAULT => 84,
     1171  :IF => 85,
     1172  :ELSE => 86,
     1173  :SWITCH => 87,
     1174  :WHILE => 88,
     1175  :DO => 89,
     1176  :FOR => 90,
     1177  :GOTO => 91,
     1178  :CONTINUE => 92,
     1179  :BREAK => 93,
     1180  :RETURN => 94,
     1181  "::" => 95,
     1182  :_ASM => 96 }
     1183
     1184racc_nt_base = 97
    10971185
    10981186racc_use_result_var = true
     
    11321220  "\"++\"",
    11331221  "\"--\"",
     1222  "\"{\"",
     1223  "\"}\"",
    11341224  "\",\"",
    11351225  "SIZEOF",
     
    11561246  "\"?\"",
    11571247  "\":\"",
    1158   "\";\"",
    11591248  "\"=\"",
    1160   "VOID",
    1161   "FLOAT",
    1162   "DOUBLE",
    1163   "BOOL",
    1164   "TYPE_NAME",
    1165   "CHAR",
    1166   "SHORT",
    1167   "INT",
    1168   "LONG",
    1169   "SIGNED",
    1170   "UNSIGNED",
    1171   "\"{\"",
    1172   "\"}\"",
    1173   "STRUCT",
    1174   "UNION",
    1175   "ENUM",
    1176   "CONST",
    1177   "VOLATILE",
    1178   "C_EXP",
    1179   "EXTENSION",
    1180   "TYPEDEF",
    1181   "IF",
    1182   "ELSE",
    1183   "WHILE",
    1184   "DO",
    1185   "FOR",
    1186   "SWITCH",
    1187   "infunc_statment",
    1188   "CASE",
    1189   "DEFAULT",
    1190   "GOTO",
    1191   "CONTINUE",
    1192   "BREAK",
    1193   "RETURN",
    11941249  "\"+=\"",
    11951250  "\"-=\"",