Changeset 17


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

begin to add scanner module using yaparc

Location:
ruby/trunk/adl_parser
Files:
3 added
4 edited
3 moved

Legend:

Unmodified
Added
Removed
  • ruby/trunk/adl_parser/Rakefile

    r4 r17  
    3636
    3737desc "Whole Unit tests"
    38 task 'test' => ['test:shell', 'test:validator', 'test:parser']
     38task 'test' => ['test:shell', 'test:validator', 'test:parser', 'test:scanner']
    3939
    4040
     
    6060end
    6161
     62Rake::TestTask.new('test:scanner') do |t|
     63  t.libs = ["lib"]
     64  t.pattern = ['tests/scanner_test.rb']
     65  t.warning = true
     66  t.verbose = true
     67end
     68
    6269
    6370Rake::RDocTask.new('rdoc') do |t|
     
    7178  s.name = 'adl_parser'
    7279  s.author = 'Akimichi Tatsukawa'
    73   s.version = '0.0.1'
     80  s.version = '0.0.2'
    7481  s.summary = 'ADL parser'
    7582  s.email = 'akimichi_tatsukawa@nifty.com'
     
    8390  s.has_rdoc = true
    8491  s.extra_rdoc_files = ["README"]
     92  s.add_dependency("yaparc", ">= 0.2.0")
    8593end
    8694
  • 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]}}
  • ruby/trunk/adl_parser/lib/parser.y

    r16 r17  
    1 
    21
    32class OpenEHR::ADL::Parser
     
    635634
    636635$:.unshift File.join(File.dirname(__FILE__))
     636require 'logger'
    637637require 'lib/util.rb'
     638require 'lib/scanner.rb'
    638639$DEBUG = true
    639640
    640641
     642
    641643---- inner
     644
     645@@log = Logger.new('log/parser.log')
     646@@dadl_scanner = OpenEHR::ADL::Scanner::DADL::RootScanner.new
     647
    642648###----------/* keywords */ ---------------------------------------------
    643649@@adl_reserved = {
     
    10961102    when :dadl
    10971103#      puts "Entering scan_dadl"
     1104      case scanned = @@dadl_scanner.parse(data)
     1105      when Yaparc::Result::OK
     1106        yield scanned.value
     1107        data = scanned.input
     1108###       when Yaparc::Result::Fail
     1109###         raise "Scan Failed: #{scanned}"
     1110###       when Yaparc::Result::Error
     1111###         raise "Scan Error: #{scanned}"
     1112      else
     1113       
     1114      end
     1115
    10981116      case data
    10991117      when /\A\n/ # carriage return
     
    11841202        end
    11851203        yield :SYM_INTERVAL_DELIM, :SYM_INTERVAL_DELIM
    1186       when /\A\[[a-zA-Z0-9()\._-]+::[a-zA-Z0-9\._-]+\]/   #V_QUALIFIED_TERM_CODE_REF form [ICD10AM(1998)::F23]
    1187         yield :V_QUALIFIED_TERM_CODE_REF, $&
     1204###       when /\A\[[a-zA-Z0-9()\._-]+::[a-zA-Z0-9\._-]+\]/   #V_QUALIFIED_TERM_CODE_REF form [ICD10AM(1998)::F23]
     1205###         yield :V_QUALIFIED_TERM_CODE_REF, $&
     1206###       when /\A\[[a-zA-Z0-9][a-zA-Z0-9._\-]*\]/   #V_LOCAL_TERM_CODE_REF
     1207###         yield :V_LOCAL_TERM_CODE_REF, $&
    11881208      when /\A\[[a-zA-Z0-9._\- ]+::[a-zA-Z0-9._\- ]+\]/   #ERR_V_QUALIFIED_TERM_CODE_REF
    11891209        yield :ERR_V_QUALIFIED_TERM_CODE_REF, $&
    1190       when /\A\[[a-zA-Z0-9][a-zA-Z0-9._\-]*\]/   #V_LOCAL_TERM_CODE_REF
    1191         yield :V_LOCAL_TERM_CODE_REF, $&
    11921210      when /\A\[/   # [
    11931211        yield :Left_bracket_code, :Left_bracket_code
  • ruby/trunk/adl_parser/tests/parser_test.rb

    r16 r17  
    9696      @parser.parse(imaging, 'openEHR-EHR-ACTION.imaging.v1.adl')
    9797    end
    98     apgar = File.read('tests/openEHR-EHR-OBSERVATION.apgar.v1.adl')
    99 #    assert_nothing_raised do
    100       result = @parser.parse(apgar, 'openEHR-EHR-OBSERVATION.apgar.v1.adl')
    101       assert_equal "", result
    102 #    end
     98#     apgar = File.read('tests/openEHR-EHR-OBSERVATION.apgar.v1.adl')
     99# #    assert_nothing_raised do
     100#       result = @parser.parse(apgar, 'openEHR-EHR-OBSERVATION.apgar.v1.adl')
     101#       assert_equal "", result
     102# #    end
    103103#     evaluation = File.read('tests/openEHR-EHR-EVALUATION.adverse.v1.adl')
    104104#     assert_nothing_raised do
Note: See TracChangeset for help on using the changeset viewer.