Ignore:
Timestamp:
Apr 26, 2008, 8:04:21 PM (16 years ago)
Author:
Tatsukawa, Akimichi
Message:

begin to add scanner module using yaparc

File:
1 edited

Legend:

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

    r16 r17  
    1010
    1111$:.unshift File.join(File.dirname(__FILE__))
     12require 'logger'
    1213require 'lib/util.rb'
     14require 'lib/scanner.rb'
    1315$DEBUG = true
    1416
    1517
    1618
     19
    1720module OpenEHR
    1821
     
    2124    class Parser < Racc::Parser
    2225
    23 module_eval <<'..end lib/parser.y modeval..id35ef94ed29', 'lib/parser.y', 642
     26module_eval <<'..end lib/parser.y modeval..idbb16065644', 'lib/parser.y', 644
     27
     28@@log = Logger.new('log/parser.log')
     29@@dadl_scanner = OpenEHR::ADL::Scanner::DADL::RootScanner.new
     30
    2431###----------/* keywords */ ---------------------------------------------
    2532@@adl_reserved = {
     
    478485    when :dadl
    479486#      puts "Entering scan_dadl"
     487      case scanned = @@dadl_scanner.parse(data)
     488      when Yaparc::Result::OK
     489        yield scanned.value
     490        data = scanned.input
     491###       when Yaparc::Result::Fail
     492###         raise "Scan Failed: #{scanned}"
     493###       when Yaparc::Result::Error
     494###         raise "Scan Error: #{scanned}"
     495      else
     496       
     497      end
     498
    480499      case data
    481500      when /\A\n/ # carriage return
     
    566585        end
    567586        yield :SYM_INTERVAL_DELIM, :SYM_INTERVAL_DELIM
    568       when /\A\[[a-zA-Z0-9()\._-]+::[a-zA-Z0-9\._-]+\]/   #V_QUALIFIED_TERM_CODE_REF form [ICD10AM(1998)::F23]
    569         yield :V_QUALIFIED_TERM_CODE_REF, $&
     587###       when /\A\[[a-zA-Z0-9()\._-]+::[a-zA-Z0-9\._-]+\]/   #V_QUALIFIED_TERM_CODE_REF form [ICD10AM(1998)::F23]
     588###         yield :V_QUALIFIED_TERM_CODE_REF, $&
     589###       when /\A\[[a-zA-Z0-9][a-zA-Z0-9._\-]*\]/   #V_LOCAL_TERM_CODE_REF
     590###         yield :V_LOCAL_TERM_CODE_REF, $&
    570591      when /\A\[[a-zA-Z0-9._\- ]+::[a-zA-Z0-9._\- ]+\]/   #ERR_V_QUALIFIED_TERM_CODE_REF
    571592        yield :ERR_V_QUALIFIED_TERM_CODE_REF, $&
    572       when /\A\[[a-zA-Z0-9][a-zA-Z0-9._\-]*\]/   #V_LOCAL_TERM_CODE_REF
    573         yield :V_LOCAL_TERM_CODE_REF, $&
    574593      when /\A\[/   # [
    575594        yield :Left_bracket_code, :Left_bracket_code
     
    774793
    775794
    776 ..end lib/parser.y modeval..id35ef94ed29
     795..end lib/parser.y modeval..idbb16065644
    777796
    778797##### racc 1.4.5 generates ###
     
    20102029 # reduce 18 omitted
    20112030
    2012 module_eval <<'.,.,', 'lib/parser.y', 74
     2031module_eval <<'.,.,', 'lib/parser.y', 73
    20132032  def _reduce_19( val, _values, result )
    20142033    result = {:language => val[1]}
     
    20392058 # reduce 30 omitted
    20402059
    2041 module_eval <<'.,.,', 'lib/parser.y', 111
     2060module_eval <<'.,.,', 'lib/parser.y', 110
    20422061  def _reduce_31( val, _values, result )
    20432062    result = {:c_complex_object_id => {:type_identifier => val[0]}}
     
    20462065.,.,
    20472066
    2048 module_eval <<'.,.,', 'lib/parser.y', 115
     2067module_eval <<'.,.,', 'lib/parser.y', 114
    20492068  def _reduce_32( val, _values, result )
    20502069    result = {:c_complex_object_id => {:type_identifier => val[0], :V_LOCAL_TERM_CODE_REF => val[1]}}
Note: See TracChangeset for help on using the changeset viewer.