Ignore:
Timestamp:
Sep 15, 2009, 1:50:46 AM (15 years ago)
Author:
Tatsukawa, Akimichi
Message:

refactoring adl scanners in object-oriented way in progress

File:
1 edited

Legend:

Unmodified
Added
Removed
  • ruby/trunk/lib/adl_parser/lib/parser.rb

    r263 r265  
    1111$:.unshift File.join(File.dirname(__FILE__))
    1212require 'logger'
    13 #require 'lib/adl_parser.rb'
    1413require 'rubygems'
    1514require 'adl_parser.rb'
     
    2423    class Parser < Racc::Parser
    2524
    26 module_eval(<<'...end parser.y/module_eval...', 'parser.y', 1206)
     25module_eval(<<'...end parser.y/module_eval...', 'parser.y', 1205)
    2726
    2827def assert_at(file,line, message = "")
     
    101100###----------/* Scanner */ -----------------------------------------------
    102101
     102
    103103def scan
    104104  @@logger.debug("#{__FILE__}:#{__LINE__}: Entering scan at #{@filename}:#{@lineno}:")
     105  adl_scanner = OpenEHR::ADL::Scanner::ADLScanner.new(@adl_type, @filename)
     106  cadl_scanner = OpenEHR::ADL::Scanner::CADLScanner.new(@adl_type, @filename)
     107  dadl_scanner = OpenEHR::ADL::Scanner::DADLScanner.new(@adl_type, @filename)
     108  regex_scanner = OpenEHR::ADL::Scanner::RegexScanner.new(@adl_type, @filename)
     109  term_constraint_scanner = OpenEHR::ADL::Scanner::TermConstraintScanner.new(@adl_type, @filename)
     110
    105111  until @data.nil?  do
    106112    case @adl_type.last
    107113    when :adl
    108       @data = scan_adl(@data) do |sym, val|
     114      @data = adl_scanner.scan(@data) do |sym, val|
    109115        yield sym, val
    110116      end
    111117    when :dadl
    112       @data = scan_dadl(@data) do |sym, val|
     118      @data = dadl_scanner.scan(@data) do |sym, val|
    113119        yield sym, val
    114120      end
    115121    when :cadl
    116       @data = scan_cadl(@data) do |sym, val|
     122      @data = cadl_scanner.scan(@data) do |sym, val|
    117123        yield sym, val
    118124      end
    119125    when :regexp
    120       @data = scan_regexp(@data) do |sym, val|
     126      @data = regex_scanner.scan(@data) do |sym, val|
    121127        yield sym, val
    122128      end
    123129    when :term_constraint
    124       @@logger.debug("#{__FILE__}:#{__LINE__}: scan: Entering scan_term_constraint at #{@filename}:#{@lineno}: data = #{data.inspect}")
    125       @data = scan_term_constraint(@data) do |sym, val|
     130      @@logger.debug("#{__FILE__}:#{__LINE__}: scan: Entering scan_term_constraint at #{@filename}:#{@lineno}: data = #{@data.inspect}")
     131      @data = term_constraint_scanner.scan(@data) do |sym, val|
    126132        yield sym, val
    127133      end
     
    134140  yield false, '$'
    135141end # of scan
     142
     143### def scan
     144###   @@logger.debug("#{__FILE__}:#{__LINE__}: Entering scan at #{@filename}:#{@lineno}:")
     145 
     146###   until @data.nil?  do
     147###     case @adl_type.last
     148###     when :adl
     149###       @data = scan_adl(@data) do |sym, val|
     150###         yield sym, val
     151###       end
     152###     when :dadl
     153###       @data = scan_dadl(@data) do |sym, val|
     154###         yield sym, val
     155###       end
     156###     when :cadl
     157###       @data = scan_cadl(@data) do |sym, val|
     158###         yield sym, val
     159###       end
     160###     when :regexp
     161###       @data = scan_regexp(@data) do |sym, val|
     162###         yield sym, val
     163###       end
     164###     when :term_constraint
     165###       @@logger.debug("#{__FILE__}:#{__LINE__}: scan: Entering scan_term_constraint at #{@filename}:#{@lineno}: data = #{data.inspect}")
     166###       @data = scan_term_constraint(@data) do |sym, val|
     167###         yield sym, val
     168###       end
     169###     else
     170###       raise
     171###     end
     172###     @data = $' # variable $' receives the string after the match
     173###   end
     174###   yield :EOF, nil
     175###   yield false, '$'
     176### end # of scan
    136177
    137178def scan_adl(data)
Note: See TracChangeset for help on using the changeset viewer.