From 13a10588e7f89f88d62d47c02f6d1bc2cf1f57aa Mon Sep 17 00:00:00 2001 From: Minero Aoki Date: Sun, 20 Jan 2008 16:22:10 +0000 Subject: [PATCH] * net/loveruby/cflat/parser/Parser.jj: refactoring: rename rule: defvars -> defvar. * net/loveruby/cflat/parser/Parser.jj: refactoring: extract new symbol defvar_list from block. git-svn-id: file:///Users/aamine/c/gitwork/public/cbc/trunk@3850 1b9489fe-b721-0410-924e-b54b9192deb8 --- ChangeLog | 8 ++++++++ net/loveruby/cflat/parser/Parser.jj | 26 ++++++++++++++++++++------ 2 files changed, 28 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index 6480986..a09d42b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +Mon Jan 21 01:22:05 2008 Minero Aoki + + * net/loveruby/cflat/parser/Parser.jj: refactoring: rename rule: + defvars -> defvar. + + * net/loveruby/cflat/parser/Parser.jj: refactoring: extract new + symbol defvar_list from block. + Mon Jan 21 01:19:10 2008 Minero Aoki * net/loveruby/cflat/ast/Declarations.java: refactoring: new diff --git a/net/loveruby/cflat/parser/Parser.jj b/net/loveruby/cflat/parser/Parser.jj index 44066b9..35ef3f2 100644 --- a/net/loveruby/cflat/parser/Parser.jj +++ b/net/loveruby/cflat/parser/Parser.jj @@ -474,8 +474,8 @@ Declarations top_decls(): } // #@@} -// #@@range/defvars{ -List defvars(): +// #@@range/defvar{ +List defvar(): { List defs = new ArrayList(); boolean priv; @@ -489,7 +489,7 @@ List defvars(): defs.add(new DefinedVariable(priv, type, name, init)); init = null; } - ("," name=name() ["=" init=expr()] + ( "," name=name() ["=" init=expr()] { defs.add(new DefinedVariable(priv, type, name, init)); init = null; @@ -579,14 +579,28 @@ Parameter param(): BlockNode block(): { Token t; - List list = new ArrayList(); List vars; List stmts; } { - t="{" (vars=defvars() { list.addAll(vars); })* stmts=stmts() "}" + t="{" vars=defvar_list() stmts=stmts() "}" { - return new BlockNode(location(t), list, stmts); + return new BlockNode(location(t), vars, stmts); + } +} +// #@@} + + +// #@@range/defvar_list{ +List defvar_list(): +{ + List result = new ArrayList(); + List vars; +} +{ + ( vars=defvar() { result.addAll(vars); } )* + { + return result; } } // #@@}