Ignore:
Timestamp:
Sep 27, 2009, 9:24:19 PM (15 years ago)
Author:
Tatsukawa, Akimichi
Message:

ADL parser is roughly coupled with open_ehr model classes

File:
1 edited

Legend:

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

    r291 r307  
    11require 'rubygems'
    2 require 'yaparc'
    32require 'logger'
    43require 'adl_parser.rb'
    5 require 'am.rb'
    6 require 'rm.rb'
     4require 'open_ehr'
     5#require 'am.rb'
     6#require 'rm.rb'
    77require 'util.rb'
    88
    99
    10 module OpenEHR
     10module OpenEhr
    1111  module ADL
    1212    module Scanner
    1313      LOGGER = Logger.new('log/scanner.log')
    14       LOGGER.level = Logger::WARN
     14      LOGGER.level = Logger::DEBUG
    1515
    1616      class Base
     
    3333        attr_accessor :adl_type, :lineno, :cadl_scanner, :dadl_scanner, :regex_scanner, :term_constraint_scanner
    3434
    35         @@logger = OpenEHR::ADL::Scanner::LOGGER #Logger.new('log/scanner.log')
     35        @@logger = OpenEhr::ADL::Scanner::LOGGER #Logger.new('log/scanner.log')
    3636        RESERVED = {
    3737          'archetype' => :SYM_ARCHETYPE,
     
    8585              when /\A(\w+)-(\w+)-(\w+)\.(\w+)((?:-\w+)*)\.(v\w+)/   #V_ARCHETYPE_ID
    8686                object_id, rm_originator, rm_name, rm_entity, concept_name, specialisation, version_id = $&, $1, $2, $3, $4, $5, $6
    87                 archetype_id = OpenEHR::RM::Support::Identification::Archetype_ID.new(object_id, concept_name, rm_name, rm_entity, rm_originator, specialisation, version_id)
     87                #archetype_id = OpenEhr::RM::Support::Identification::ArchetypeID.new(object_id, concept_name, rm_name, rm_entity, rm_originator, specialisation, version_id)
     88                archetype_id = OpenEhr::RM::Support::Identification::ArchetypeID.new(:concept_name => concept_name, :rm_name => rm_name, :rm_entity => rm_entity, :rm_originator => :rm_originator, :specialisation => specialisation, :version_id => version_id)
    8889                yield :V_ARCHETYPE_ID, archetype_id
    8990              when /\A[a-z][a-zA-Z0-9_]*/
     
    173174              when /\A\[([a-zA-Z0-9()\._-]+::[a-zA-Z0-9\._-]+)\]/ #V_QUALIFIED_TERM_CODE_REF form such as [ICD10AM(1998)::F23]
    174175                yield :V_QUALIFIED_TERM_CODE_REF, $1
    175               when /\A\[[a-zA-Z0-9][a-zA-Z0-9._\-]*\]/   #V_LOCAL_TERM_CODE_REF
    176                 yield :V_LOCAL_TERM_CODE_REF, $&
     176              when /\A\[([a-zA-Z0-9][a-zA-Z0-9._\-]*)\]/   #V_LOCAL_TERM_CODE_REF
     177                yield :V_LOCAL_TERM_CODE_REF, $1
    177178              when /\A\[/   # [
    178179                yield :Left_bracket_code, :Left_bracket_code
     
    208209              data = $' # variable $' receives the string after the match
    209210            when :dadl
    210               dadl_scanner = OpenEHR::ADL::Scanner::DADLScanner.new(@adl_type, @filename, @lineno)
     211              dadl_scanner = OpenEhr::ADL::Scanner::DADLScanner.new(@adl_type, @filename, @lineno)
    211212              data = dadl_scanner.scan(data) do |sym, val|
    212213                yield sym, val
    213214              end
    214215            when :cadl
    215               cadl_scanner = OpenEHR::ADL::Scanner::CADLScanner.new(@adl_type, @filename, @lineno)
     216              cadl_scanner = OpenEhr::ADL::Scanner::CADLScanner.new(@adl_type, @filename, @lineno)
    216217              data = cadl_scanner.scan(data) do |sym, val|
    217218                yield sym, val
    218219              end
    219220            when :regexp
    220               regex_scanner = OpenEHR::ADL::Scanner::RegexScanner.new(@adl_type, @filename, @lineno)
     221              regex_scanner = OpenEhr::ADL::Scanner::RegexScanner.new(@adl_type, @filename, @lineno)
    221222              data = regex_scanner.scan(data) do |sym, val|
    222223                yield sym, val
    223224              end
    224225            when :term_constraint
    225               term_constraint_scanner = OpenEHR::ADL::Scanner::TermConstraintScanner.new(@adl_type, @filename, @lineno)
     226              term_constraint_scanner = OpenEhr::ADL::Scanner::TermConstraintScanner.new(@adl_type, @filename, @lineno)
    226227              data = term_constraint_scanner.scan(data) do |sym, val|
    227228                yield sym, val
     
    238239      #
    239240      class DADLScanner < Base
    240         @@logger = OpenEHR::ADL::Scanner::LOGGER #Logger.new('log/scanner.log')
     241        attr_accessor :in_interval, :in_c_domain_type, :in_dblock
     242        @@logger = OpenEhr::ADL::Scanner::LOGGER #Logger.new('log/scanner.log')
    241243        RESERVED = {
    242244          'true' => :SYM_TRUE, #[Tt][Rr][Uu][Ee] -- -> SYM_TRUE
     
    249251          @in_interval = false
    250252          @in_c_domain_type = false
     253          @in_dblock = true
    251254        end
    252255
     
    258261          until data.nil?  do
    259262            @@logger.debug("#{@filename}:#{@lineno}: DADLScanner#scan:loop data = #{data.inspect}")
     263            @@logger.debug("#{@filename}:#{@lineno}: DADLScanner#scan:loop self = \n#{self.to_yaml}")
    260264            case @adl_type.last
    261265            when :dadl
     
    297301                if @in_interval
    298302                  yield :SYM_GT, :SYM_GT
     303#                 elsif @in_dblock == true
     304#                   @in_dblock = false
     305#                   yield :SYM_END_DBLOCK, :SYM_END_DBLOCK
    299306                elsif @in_c_domain_type == true
    300307                  assert_at(__FILE__,__LINE__){@adl_type.last == :dadl}
    301308                  adl_type = @adl_type.pop
    302                   if @adl_type.last == :cadl
     309                  if adl_type == :dadl
    303310                    @in_c_domain_type = false
    304                     yield :END_V_C_DOMAIN_TYPE_BLOCK, $&
     311                    yield :END_V_C_DOMAIN_TYPE_BLOCK, :END_V_C_DOMAIN_TYPE_BLOCK
     312#                    yield :SYM_END_DBLOCK, :SYM_END_DBLOCK
    305313                  else
    306                     yield :SYM_END_DBLOCK, $&
     314                    yield :SYM_END_DBLOCK, :SYM_END_DBLOCK
    307315                  end
    308316                elsif @in_c_domain_type == false
     
    392400              data = $' # variable $' receives the string after the match
    393401            when :adl
    394               adl_scanner = OpenEHR::ADL::Scanner::ADLScanner.new(@adl_type, @filename, @lineno)
     402              adl_scanner = OpenEhr::ADL::Scanner::ADLScanner.new(@adl_type, @filename, @lineno)
    395403              data = adl_scanner.scan(data) do |sym, val|
    396404                yield sym, val
    397405              end
    398406            when :cadl
    399               cadl_scanner = OpenEHR::ADL::Scanner::CADLScanner.new(@adl_type, @filename, @lineno)
     407              cadl_scanner = OpenEhr::ADL::Scanner::CADLScanner.new(@adl_type, @filename, @lineno)
    400408              data = cadl_scanner.scan(data) do |sym, val|
    401409                yield sym, val
    402410              end
    403411            when :regexp
    404               regex_scanner = OpenEHR::ADL::Scanner::RegexScanner.new(@adl_type, @filename, @lineno)
     412              regex_scanner = OpenEhr::ADL::Scanner::RegexScanner.new(@adl_type, @filename, @lineno)
    405413              data = regex_scanner.scan(data) do |sym, val|
    406414                yield sym, val
     
    408416            when :term_constraint
    409417              @@logger.debug("#{__FILE__}:#{__LINE__}: scan_dadl: Entering scan_term_constraint at #{@filename}:#{@lineno}: data = #{data.inspect}")
    410               term_constraint_scanner = OpenEHR::ADL::Scanner::TermConstraintScanner.new(@adl_type, @filename, @lineno)
     418              term_constraint_scanner = OpenEhr::ADL::Scanner::TermConstraintScanner.new(@adl_type, @filename, @lineno)
    411419              data = term_constraint_scanner.scan(data) do |sym, val|
    412420                yield sym, val
     
    423431      class CADLScanner < Base
    424432
    425         @@logger = OpenEHR::ADL::Scanner::LOGGER #Logger.new('log/scanner.log')        #Logger.new('log/scanner.log')
     433        @@logger = OpenEhr::ADL::Scanner::LOGGER #Logger.new('log/scanner.log')        #Logger.new('log/scanner.log')
    426434        RESERVED = {
    427435          'then' => :SYM_THEN, # [Tt][Hh][Ee][Nn]
     
    568576                @adl_type.push(:term_constraint)
    569577                yield :START_TERM_CODE_CONSTRAINT, $1
    570               when /\A\[[a-zA-Z0-9][a-zA-Z0-9._\-]*\]/   #V_LOCAL_TERM_CODE_REF
    571                 yield :V_LOCAL_TERM_CODE_REF, $&
     578              when /\A\[([a-zA-Z0-9][a-zA-Z0-9._\-]*)\]/   #V_LOCAL_TERM_CODE_REF
     579                yield :V_LOCAL_TERM_CODE_REF, $1
    572580              when /\A\[/   # [
    573581                yield :Left_bracket_code, :Left_bracket_code
     
    595603                  yield :V_ATTRIBUTE_IDENTIFIER, word #V_ATTRIBUTE_IDENTIFIER /\A[a-z][a-zA-Z0-9_]*/
    596604                end
     605              when /\A([A-Z][a-zA-Z0-9_]*)[ \n]*\</ # V_C_DOMAIN_TYPE
     606                @in_c_domain_type = true
     607                @adl_type.push(:dadl)
     608                yield  :START_V_C_DOMAIN_TYPE_BLOCK, $1
    597609              when /\A[A-Z][a-zA-Z0-9_]*/
    598610                word = $&.dup
     
    624636                yield :UTF8CHAR, $&
    625637              when /\A.+/ #
    626                 raise OpenEHR::ADL::Exception::CADLScanner::Base.new, "can't handle #{data.inspect}"
     638                raise OpenEhr::ADL::Exception::CADLScanner::Base.new, "can't handle #{data.inspect}"
    627639              end
    628640              data = $' # variable $' receives the string after the match
    629641            when :adl
    630               adl_scanner = OpenEHR::ADL::Scanner::ADLScanner.new(@adl_type, @filename, @lineno)
     642              adl_scanner = OpenEhr::ADL::Scanner::ADLScanner.new(@adl_type, @filename, @lineno)
    631643              data = adl_scanner.scan(data) do |sym, val|
    632644                yield sym, val
    633645              end
    634646            when :dadl
    635               dadl_scanner = OpenEHR::ADL::Scanner::DADLScanner.new(@adl_type, @filename, @lineno)
     647              dadl_scanner = OpenEhr::ADL::Scanner::DADLScanner.new(@adl_type, @filename, @lineno)
     648              dadl_scanner.in_c_domain_type = @in_c_domain_type
    636649              data = dadl_scanner.scan(data) do |sym, val|
    637650                yield sym, val
    638651              end
    639652            when :regexp
    640               regex_scanner = OpenEHR::ADL::Scanner::RegexScanner.new(@adl_type, @filename, @lineno)
     653              regex_scanner = OpenEhr::ADL::Scanner::RegexScanner.new(@adl_type, @filename, @lineno)
    641654              data = regex_scanner.scan(data) do |sym, val|
    642655                yield sym, val
     
    644657            when :term_constraint
    645658              @@logger.debug("Entering scan_term_constraint at #{@filename}:#{@lineno}: data = #{data.inspect}")
    646               term_constraint_scanner = OpenEHR::ADL::Scanner::TermConstraintScanner.new(@adl_type, @filename, @lineno)
     659              term_constraint_scanner = OpenEhr::ADL::Scanner::TermConstraintScanner.new(@adl_type, @filename, @lineno)
    647660              data = term_constraint_scanner.scan(data) do |sym, val|
    648661                yield sym, val
    649662              end
    650663            else
    651               raise OpenEHR::ADL::Exception::CADLScanner.new, "unexpected adl_type: #{@adl_type.last}"
     664              raise OpenEhr::ADL::Exception::CADLScanner.new, "unexpected adl_type: #{@adl_type.last}"
    652665            end
    653666          end # of until
     
    661674      class RegexScanner < Base
    662675
    663         @@logger = OpenEHR::ADL::Scanner::LOGGER #Logger.new('log/scanner.log')        #Logger.new('log/scanner.log')
     676        @@logger = OpenEhr::ADL::Scanner::LOGGER #Logger.new('log/scanner.log')        #Logger.new('log/scanner.log')
    664677       
    665678        def initialize(adl_type, filename, lineno = 1)
     
    695708              data = $' # variable $' receives the string after the match
    696709            when :adl
    697               adl_scanner = OpenEHR::ADL::Scanner::ADLScanner.new(@adl_type, @filename, @lineno)
     710              adl_scanner = OpenEhr::ADL::Scanner::ADLScanner.new(@adl_type, @filename, @lineno)
    698711              data = adl_scanner.scan(data) do |sym, val|
    699712                yield sym, val
    700713              end
    701714            when :dadl
    702               dadl_scanner = OpenEHR::ADL::Scanner::DADLScanner.new(@adl_type, @filename, @lineno)
     715              dadl_scanner = OpenEhr::ADL::Scanner::DADLScanner.new(@adl_type, @filename, @lineno)
    703716              data = dadl_scanner.scan(data) do |sym, val|
    704717                yield sym, val
    705718              end
    706719            when :cadl
    707               cadl_scanner = OpenEHR::ADL::Scanner::CADLScanner.new(@adl_type, @filename, @lineno)
     720              cadl_scanner = OpenEhr::ADL::Scanner::CADLScanner.new(@adl_type, @filename, @lineno)
    708721              data = cadl_scanner.scan(data) do |sym, val|
    709722                yield sym, val
     
    711724            when :term_constraint
    712725              #@@logger.debug("#{__FILE__}:#{__LINE__}: scan_regexp: Entering scan_term_constraint at #{@filename}:#{@lineno}")
    713               term_constraint_scanner = OpenEHR::ADL::Scanner::TermConstraintScanner.new(@adl_type, @filename, @lineno)
     726              term_constraint_scanner = OpenEhr::ADL::Scanner::TermConstraintScanner.new(@adl_type, @filename, @lineno)
    714727              data = term_constraint_scanner.scan(data) do |sym, val|
    715728                yield sym, val
     
    726739      #
    727740      class TermConstraintScanner < Base
    728         @@logger = OpenEHR::ADL::Scanner::LOGGER #Logger.new('log/scanner.log')        #Logger.new('log/scanner.log')
     741        @@logger = OpenEhr::ADL::Scanner::LOGGER #Logger.new('log/scanner.log')        #Logger.new('log/scanner.log')
    729742        def initialize(adl_type, filename, lineno = 1)
    730743          super(adl_type, filename, lineno)
     
    759772              data = $' # variable $' receives the string after the match
    760773            when :adl
    761               adl_scanner = OpenEHR::ADL::Scanner::ADLScanner.new(@adl_type, @filename, @lineno)
     774              adl_scanner = OpenEhr::ADL::Scanner::ADLScanner.new(@adl_type, @filename, @lineno)
    762775              data = adl_scanner.scan(data) do |sym, val|
    763776                yield sym, val
    764777              end
    765778            when :dadl
    766               dadl_scanner = OpenEHR::ADL::Scanner::DADLScanner.new(@adl_type, @filename, @lineno)
     779              dadl_scanner = OpenEhr::ADL::Scanner::DADLScanner.new(@adl_type, @filename, @lineno)
    767780              data = dadl_scanner.scan(data) do |sym, val|
    768781                yield sym, val
    769782              end
    770783            when :cadl
    771               cadl_scanner = OpenEHR::ADL::Scanner::CADLScanner.new(@adl_type, @filename, @lineno)
     784              cadl_scanner = OpenEhr::ADL::Scanner::CADLScanner.new(@adl_type, @filename, @lineno)
    772785              data = cadl_scanner.scan(data) do |sym, val|
    773786                yield sym, val
     
    794807#             @parser = lambda do |input|
    795808#               Yaparc::Apply.new(Yaparc::Regex.new(/[ \t\n]*\[([a-zA-Z0-9\(\)\._\-]+)::[ \t\n]*/)) do |match|
    796 #                 OpenEHR::LOG.info("START_TERM_CODE_CONSTRAINT: #{match}")
     809#                 OpenEhr::LOG.info("START_TERM_CODE_CONSTRAINT: #{match}")
    797810#                 [:START_TERM_CODE_CONSTRAINT, match]
    798811#               end
     
    807820#             @parser = lambda do |input|
    808821#               Yaparc::Apply.new(Yaparc::Regex.new(/\A\[[a-zA-Z0-9()\._-]+::[a-zA-Z0-9\._-]+\]/)) do |match|
    809 #                 OpenEHR::LOG.info("V_QUALIFIED_TERM_CODE_REF: #{match}")
     822#                 OpenEhr::LOG.info("V_QUALIFIED_TERM_CODE_REF: #{match}")
    810823#                 [:V_QUALIFIED_TERM_CODE_REF, match]
    811824#               end
     
    819832#             @parser = lambda do |input|
    820833#               Yaparc::Apply.new(Yaparc::Regex.new(/\A\[[a-zA-Z0-9][a-zA-Z0-9._\-]*\]/)) do |match|
    821 #                 OpenEHR::LOG.info("V_TERM_CODE_REF: #{match}")
     834#                 OpenEhr::LOG.info("V_TERM_CODE_REF: #{match}")
    822835#                 [:V_LOCAL_TERM_CODE_REF, match]
    823836#               end
     
    831844#             @parser = lambda do |input|
    832845#               Yaparc::Apply.new(Yaparc::Regex.new(/\A\[[a-zA-Z0-9._\- ]+::[a-zA-Z0-9._\- ]+\]/)) do |match|
    833 #                 OpenEHR::LOG.info("ERR_V_QUALIFIED_TERM_CODE_REF: #{match}")
     846#                 OpenEhr::LOG.info("ERR_V_QUALIFIED_TERM_CODE_REF: #{match}")
    834847#                 [:ERR_V_QUALIFIED_TERM_CODE_REF, match]
    835848#               end
     
    843856#             @parser = lambda do |input|
    844857#               Yaparc::Apply.new(Yaparc::Regex.new(/\A[A-Z][a-zA-Z0-9_]*/)) do |match|
    845 #                 OpenEHR::LOG.info("V_TYPE_IDENTIFIER: #{match}")
     858#                 OpenEhr::LOG.info("V_TYPE_IDENTIFIER: #{match}")
    846859#                 [:V_TYPE_IDENTIFIER, match]
    847860#               end
     
    855868#             @parser = lambda do |input|
    856869#               Yaparc::Apply.new(Yaparc::Regex.new(/\A[A-Z][a-zA-Z0-9_]*<[a-zA-Z0-9,_<>]+>/)) do |match|
    857 #                 OpenEHR::LOG.info("V_GENERIC_TYPE_IDENTIFIER: #{match}")
     870#                 OpenEhr::LOG.info("V_GENERIC_TYPE_IDENTIFIER: #{match}")
    858871#                 [:V_GENERIC_TYPE_IDENTIFIER, match]
    859872#               end
     
    868881#             @parser = lambda do |input|
    869882#               Yaparc::Apply.new(Yaparc::Regex.new(/\Aa[ct][0-9.]+/)) do |match|
    870 #                 OpenEHR::LOG.info("V_LOCAL_CODE: #{match}")
     883#                 OpenEhr::LOG.info("V_LOCAL_CODE: #{match}")
    871884#                 [:V_LOCAL_CODE, match]
    872885#               end
     
    880893#             @parser = lambda do |input|
    881894#               Yaparc::Apply.new(Yaparc::Regex.new(/\A"([^"]*)"/m)) do |match|
    882 #                 OpenEHR::LOG.info("V_STRING: #{match}")
     895#                 OpenEhr::LOG.info("V_STRING: #{match}")
    883896#                 [:V_STRING, match]
    884897#               end
     
    892905#             @parser = lambda do |input|
    893906#               Yaparc::Apply.new(Yaparc::Regex.new(/\A[0-9]+\.[0-9]+|[0-9]+\.[0-9]+[eE][+-]?[0-9]+/)) do |match|
    894 #                 OpenEHR::LOG.info("V_REAL: #{match}")
     907#                 OpenEhr::LOG.info("V_REAL: #{match}")
    895908#                 [:V_REAL, match]
    896909#               end
     
    907920#                                 Yaparc::Alt.new(Yaparc::Regex.new(/\AP([0-9]+|[yY])?([0-9]+|[mM])?([0-9]+|[wW])?([0-9]+|[dD])?T([0-9]+|[hH])?([0-9]+|[mM])?([0-9]+|[sS])?/),
    908921#                                                 Yaparc::Regex.new(/\AP([0-9]+|[yY])?([0-9]+|[mM])?([0-9]+|[wW])?([0-9]+|[dD])?/))) do |match|
    909 #                 OpenEHR::LOG.info("V_ISO8601_DURATION: #{match}")
     922#                 OpenEhr::LOG.info("V_ISO8601_DURATION: #{match}")
    910923#                 [:V_ISO8601_DURATION, match]
    911924#               end
     
    931944#             @parser = lambda do |input|
    932945#               Yaparc::Alt.new(Reserved.new,
    933 #                               OpenEHR::ADL::Scanner::Common::V_QUALIFIED_TERM_CODE_REF.new,
    934 #                               OpenEHR::ADL::Scanner::Common::V_LOCAL_TERM_CODE_REF.new,
    935 #                               OpenEHR::ADL::Scanner::Common::ERR_V_QUALIFIED_TERM_CODE_REF.new,
    936 #                               OpenEHR::ADL::Scanner::Common::V_TYPE_IDENTIFIER.new,
    937 #                               OpenEHR::ADL::Scanner::Common::V_GENERIC_TYPE_IDENTIFIER.new,
    938 #                               OpenEHR::ADL::Scanner::Common::V_STRING.new,
    939 #                               OpenEHR::ADL::Scanner::Common::V_LOCAL_CODE.new,
    940 #                               OpenEHR::ADL::Scanner::Common::V_REAL.new,
    941 #                               OpenEHR::ADL::Scanner::Common::V_ISO8601_DURATION.new#,
    942 #                               #OpenEHR::ADL::Scanner::Common::START_TERM_CODE_CONSTRAINT.new
     946#                               OpenEhr::ADL::Scanner::Common::V_QUALIFIED_TERM_CODE_REF.new,
     947#                               OpenEhr::ADL::Scanner::Common::V_LOCAL_TERM_CODE_REF.new,
     948#                               OpenEhr::ADL::Scanner::Common::ERR_V_QUALIFIED_TERM_CODE_REF.new,
     949#                               OpenEhr::ADL::Scanner::Common::V_TYPE_IDENTIFIER.new,
     950#                               OpenEhr::ADL::Scanner::Common::V_GENERIC_TYPE_IDENTIFIER.new,
     951#                               OpenEhr::ADL::Scanner::Common::V_STRING.new,
     952#                               OpenEhr::ADL::Scanner::Common::V_LOCAL_CODE.new,
     953#                               OpenEhr::ADL::Scanner::Common::V_REAL.new,
     954#                               OpenEhr::ADL::Scanner::Common::V_ISO8601_DURATION.new#,
     955#                               #OpenEhr::ADL::Scanner::Common::START_TERM_CODE_CONSTRAINT.new
    943956#                               )
    944957#             end
     
    952965#           def initialize
    953966#             @parser = lambda do |input|
    954 #               reserved_parsers = OpenEHR::ADL::Scanner::DADL::RESERVED.map do |keyword|
     967#               reserved_parsers = OpenEhr::ADL::Scanner::DADL::RESERVED.map do |keyword|
    955968#                 Yaparc::Tokenize.new(
    956969#                                      Yaparc::Literal.new(keyword[0],false)
     
    958971#               end
    959972#               Yaparc::Alt.new(Yaparc::Apply.new(Yaparc::Alt.new(*reserved_parsers)) do |match|
    960 #                                 OpenEHR::LOG.info("Reserved: #{match}")
    961 #                                 [OpenEHR::ADL::Scanner::DADL::RESERVED[match], OpenEHR::ADL::Scanner::DADL::RESERVED[match]]
     973#                                 OpenEhr::LOG.info("Reserved: #{match}")
     974#                                 [OpenEhr::ADL::Scanner::DADL::RESERVED[match], OpenEhr::ADL::Scanner::DADL::RESERVED[match]]
    962975#                               end,
    963976#                               Yaparc::Apply.new(Yaparc::Regex.new(/\A[a-z][a-zA-Z0-9_]*/)) do |match|
    964 #                                 OpenEHR::LOG.info("V_ATTRIBUTE_IDENTIFIER: #{match}")
     977#                                 OpenEhr::LOG.info("V_ATTRIBUTE_IDENTIFIER: #{match}")
    965978#                                 [:V_ATTRIBUTE_IDENTIFIER, match]
    966979#                               end)
     
    10071020#             @parser = lambda do |input|
    10081021#               Yaparc::Apply.new(Yaparc::Regex.new(/\A[yY][yY][yY][yY]-[mM?X][mM?X]-[dD?X][dD?X][T\t][hH?X][hH?X]:[mM?X][mM?X]:[sS?X][sS?X]/)) do |match|
    1009 #                 OpenEHR::LOG.info("V_ISO8601_DATE_TIME_CONSTRAINT_PATTERN: #{match}")
     1022#                 OpenEhr::LOG.info("V_ISO8601_DATE_TIME_CONSTRAINT_PATTERN: #{match}")
    10101023#                 [:V_ISO8601_DATE_TIME_CONSTRAINT_PATTERN, match]
    10111024#               end
     
    10201033#             @parser = lambda do |input|
    10211034#               Yaparc::Apply.new(Yaparc::Regex.new(/\A[yY][yY][yY][yY]-[mM?X][mM?X]-[dD?X][dD?X]/)) do |match|
    1022 #                 OpenEHR::LOG.info("V_ISO8601_DATE_CONSTRAINT_PATTERN: #{match}")
     1035#                 OpenEhr::LOG.info("V_ISO8601_DATE_CONSTRAINT_PATTERN: #{match}")
    10231036#                 [:V_ISO8601_DATE_CONSTRAINT_PATTERN, match]
    10241037#               end
     
    10331046#             @parser = lambda do |input|
    10341047#               Yaparc::Apply.new(Yaparc::Regex.new(/\A[hH][hH]:[mM?X][mM?X]:[sS?X][sS?X]/)) do |match|
    1035 #                 OpenEHR::LOG.info("V_ISO8601_TIME_CONSTRAINT_PATTERN: #{match}")
     1048#                 OpenEhr::LOG.info("V_ISO8601_TIME_CONSTRAINT_PATTERN: #{match}")
    10361049#                 [:V_ISO8601_TIME_CONSTRAINT_PATTERN, match]
    10371050#               end
     
    10471060#               Yaparc::Apply.new(Yaparc::Alt.new(Yaparc::Regex.new(/\AP[yY]?[mM]?[wW]?[dD]?T[hH]?[mM]?[sS]?/),
    10481061#                                                 Yaparc::Regex.new(/\AP[yY]?[mM]?[wW]?[dD]?/))) do |match|
    1049 #                 OpenEHR::LOG.info("V_ISO8601_DURATION_CONSTRAINT_PATTERN: #{match}")
     1062#                 OpenEhr::LOG.info("V_ISO8601_DURATION_CONSTRAINT_PATTERN: #{match}")
    10501063#                 [:V_ISO8601_DURATION_CONSTRAINT_PATTERN, match]
    10511064#               end
     
    10601073#             @parser = lambda do |input|
    10611074#               Yaparc::Apply.new(Yaparc::Regex.new(/\A[A-Z][a-zA-Z0-9_]*[ \n]*\</)) do |match|
    1062 #                 OpenEHR::LOG.info("V_C_DOMAIN_TYPE: #{match}")
     1075#                 OpenEhr::LOG.info("V_C_DOMAIN_TYPE: #{match}")
    10631076#                 [:START_V_C_DOMAIN_TYPE_BLOCK, match]
    10641077#               end
     
    10771090#                               V_ISO8601_DATE_CONSTRAINT_PATTERN.new,
    10781091#                               V_ISO8601_TIME_CONSTRAINT_PATTERN.new,
    1079 #                               OpenEHR::ADL::Scanner::Common::V_ISO8601_DURATION.new,
     1092#                               OpenEhr::ADL::Scanner::Common::V_ISO8601_DURATION.new,
    10801093#                               V_C_DOMAIN_TYPE.new,
    10811094#                               V_ISO8601_DURATION_CONSTRAINT_PATTERN.new,
    10821095#                               Reserved.new,
    1083 #                               OpenEHR::ADL::Scanner::Common::V_QUALIFIED_TERM_CODE_REF.new,
    1084 #                               OpenEHR::ADL::Scanner::Common::V_LOCAL_TERM_CODE_REF.new,
    1085 #                               OpenEHR::ADL::Scanner::Common::ERR_V_QUALIFIED_TERM_CODE_REF.new,
    1086 #                               OpenEHR::ADL::Scanner::Common::V_TYPE_IDENTIFIER.new,
    1087 #                               OpenEHR::ADL::Scanner::Common::V_GENERIC_TYPE_IDENTIFIER.new,
    1088 #                               OpenEHR::ADL::Scanner::Common::V_STRING.new,
    1089 #                               OpenEHR::ADL::Scanner::Common::V_LOCAL_CODE.new,
    1090 #                               OpenEHR::ADL::Scanner::Common::V_REAL.new,
    1091 #                               OpenEHR::ADL::Scanner::Common::V_ISO8601_DURATION.new#,
    1092 #                               #OpenEHR::ADL::Scanner::Common::START_TERM_CODE_CONSTRAINT.new
     1096#                               OpenEhr::ADL::Scanner::Common::V_QUALIFIED_TERM_CODE_REF.new,
     1097#                               OpenEhr::ADL::Scanner::Common::V_LOCAL_TERM_CODE_REF.new,
     1098#                               OpenEhr::ADL::Scanner::Common::ERR_V_QUALIFIED_TERM_CODE_REF.new,
     1099#                               OpenEhr::ADL::Scanner::Common::V_TYPE_IDENTIFIER.new,
     1100#                               OpenEhr::ADL::Scanner::Common::V_GENERIC_TYPE_IDENTIFIER.new,
     1101#                               OpenEhr::ADL::Scanner::Common::V_STRING.new,
     1102#                               OpenEhr::ADL::Scanner::Common::V_LOCAL_CODE.new,
     1103#                               OpenEhr::ADL::Scanner::Common::V_REAL.new,
     1104#                               OpenEhr::ADL::Scanner::Common::V_ISO8601_DURATION.new#,
     1105#                               #OpenEhr::ADL::Scanner::Common::START_TERM_CODE_CONSTRAINT.new
    10931106#                               )
    10941107#             end
     
    11071120#               end
    11081121#               Yaparc::Alt.new(Yaparc::Apply.new(Yaparc::Alt.new(*reserved_parsers)) do |match|
    1109 #                                 OpenEHR::LOG.info("Reserved: #{match}")
    1110 #                                 [OpenEHR::ADL::Scanner::CADL::RESERVED[match], OpenEHR::ADL::Scanner::CADL::RESERVED[match]]
     1122#                                 OpenEhr::LOG.info("Reserved: #{match}")
     1123#                                 [OpenEhr::ADL::Scanner::CADL::RESERVED[match], OpenEhr::ADL::Scanner::CADL::RESERVED[match]]
    11111124#                               end,
    11121125#                               Yaparc::Apply.new(Yaparc::Regex.new(/\A[a-z][a-zA-Z0-9_]*/)) do |match|
    1113 #                                 OpenEHR::LOG.info("V_ATTRIBUTE_IDENTIFIER: #{match}")
     1126#                                 OpenEhr::LOG.info("V_ATTRIBUTE_IDENTIFIER: #{match}")
    11141127#                                 [:V_ATTRIBUTE_IDENTIFIER, match]
    11151128#                               end)
Note: See TracChangeset for help on using the changeset viewer.