Changeset 321 for ruby/trunk/lib/adl_parser/lib/adl_scanner.rb
- Timestamp:
- Oct 18, 2009, 12:06:41 AM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
ruby/trunk/lib/adl_parser/lib/adl_scanner.rb
r320 r321 519 519 when /\A\+/ # + 520 520 yield :Plus_code, :Plus_code 521 when /\A\=/ # = 522 yield :Equal_code, :Equal_code 521 523 when /\A\*/ # * 522 524 yield :Star_code, :Star_code … … 542 544 yield :Right_parenthesis_code, :Right_parenthesis_code 543 545 when /\A\// # / 544 # yield :Slash_code, :Slash_code 545 # when /\A\// #V_REGEXP / 546 assert_at(__FILE__,__LINE__){@adl_type.last != :regexp} 547 #@in_regexp = true 546 @@logger.debug("CADLScanner#scan: Slash_code #{@filename}:#{@lineno}") 547 yield :Slash_code, :Slash_code 548 # # yield :Slash_code, :Slash_code 549 # # when /\A\// #V_REGEXP / 550 # assert_at(__FILE__,__LINE__){@adl_type.last != :regexp} 551 # #@in_regexp = true 552 # @adl_type.push(:regexp) 553 # # yield :START_REGEXP_BLOCK, :START_REGEXP_BLOCK 554 555 when /\A\{\// # REGEXP_HEAD {/ 556 assert_at(__FILE__,__LINE__){ @adl_type.last != :regexp} 557 # @in_regexp = true 558 @@logger.debug("CADLScanner#scan: REGEXP_HEAD:") 559 @adl_type.push(:cadl) 548 560 @adl_type.push(:regexp) 549 # yield :START_REGEXP_BLOCK, :START_REGEXP_BLOCK 550 yield :Slash_code, :Slash_code 551 552 # when /\A\{\// #V_REGEXP {/ 553 # if @adl_type.last != :regexp 554 # @in_regexp = true 555 # @adl_type.push(:regexp) 556 # yield :START_REGEXP_BLOCK, :START_REGEXP_BLOCK 557 # else 558 # assert_at(__FILE__,__LINE__){false} 559 # end 561 # yield :START_REGEXP_BLOCK, :START_REGEXP_BLOCK 562 yield :REGEXP_HEAD, :REGEXP_HEAD 560 563 when /\A\{/ # { 561 564 @adl_type.push(:cadl) 562 @@logger.debug("CADLScanner#scan: entering cADL at #{@filename}:#{@lineno}")565 #@@logger.debug("CADLScanner#scan: entering cADL at #{@filename}:#{@lineno}") 563 566 yield :SYM_START_CBLOCK, :SYM_START_CBLOCK 564 567 when /\A\}/ # } … … 628 631 when /\AP[yY]?[mM]?[wW]?[dD]?/ #V_ISO8601_DURATION_CONSTRAINT_PATTERN 629 632 yield :V_ISO8601_DURATION_CONSTRAINT_PATTERN, $& 630 when /\A[a-z A-Z][a-zA-Z0-9_]*/633 when /\A[a-z][a-zA-Z0-9_]*/ 631 634 word = $&.dup 632 635 if RESERVED[word.downcase] 633 @@logger.debug(" CADLScanner#scan: RESERVED = #{word} at #{@filename}:#{@lineno}")636 @@logger.debug("ADLScanner#scan: RESERVED = #{RESERVED[word]} at #{@filename}:#{@lineno}") 634 637 yield RESERVED[word.downcase], RESERVED[word.downcase] 635 638 else … … 654 657 when /\A[0-9]{4}-[0-1][0-9]-[0-3][0-9]T[0-2][0-9]:[0-6][0-9](Z|[+-][0-9]{4})?/ 655 658 yield :V_ISO8601_EXTENDED_DATE_TIME, $& 656 when /\A[ [0-9]{4}-[0-1][0-9]-[0-3][0-9]T[0-2][0-9](Z|[+-][0-9]{4})?/659 when /\A[0-9]{4}-[0-1][0-9]-[0-3][0-9]T[0-2][0-9](Z|[+-][0-9]{4})?/ 657 660 yield :V_ISO8601_EXTENDED_DATE_TIME, $& 658 when /\A[0-2][0-9]:[0-6][0-9]:[0-6][0-9](,[0-9]+)?(Z|[+-][0-9]{4})?|[0-2][0-9]:[0-6][0-9](Z|[+-][0-9]{4})? / #V_ISO8601_EXTENDED_TIME hh:mm:ss[,sss][Z|+/-nnnn] 661 when /\A[0-2][0-9]:[0-6][0-9]:[0-6][0-9](,[0-9]+)?(Z|[+-][0-9]{4})?/ #V_ISO8601_EXTENDED_TIME hh:mm:ss[,sss][Z|+/-nnnn] 662 yield :V_ISO8601_EXTENDED_TIME, $& 663 when /\A[0-2][0-9]:[0-6][0-9](Z|[+-][0-9]{4})?/ #V_ISO8601_EXTENDED_TIME hh:mm:ss[,sss][Z|+/-nnnn] 659 664 yield :V_ISO8601_EXTENDED_TIME, $& 660 665 when /\A[0-9]{4}-[0-1][0-9]-[0-3][0-9]/ #V_ISO8601_EXTENDED_DATE YYYY-MM-DD … … 696 701 end 697 702 when :term_constraint 698 @@logger.debug("Entering scan_term_constraint at #{@filename}:#{@lineno}: data = #{data.inspect}")699 703 term_constraint_scanner = OpenEhr::ADL::Scanner::TermConstraintScanner.new(@adl_type, @filename, @lineno) 700 704 data = term_constraint_scanner.scan(data) do |sym, val| … … 726 730 when :regexp 727 731 case data 728 when /\A\// #V_REGEXP / 729 assert_at(__FILE__,__LINE__){@adl_type.last == :regexp} 730 #@in_regexp = false 731 @adl_type.pop 732 yield :END_REGEXP_BLOCK, :END_REGEXP_BLOCK 732 # # when /\A\// #V_REGEXP / 733 # when /\A([^\/]+)\// #V_REGEXP 734 # assert_at(__FILE__,__LINE__){@adl_type.last == :regexp} 735 # #@in_regexp = false 736 # @adl_type.pop 737 # @@logger.debug("#{__FILE__}:#{__LINE__}: RegexScanner::scan $1 = #{$1.inspect}") 738 # # yield :END_REGEXP_BLOCK, :END_REGEXP_BLOCK 739 # yield :V_REGEXP, $1 733 740 # when /\A\/\}/ #V_REGEXP / 734 741 # if @adl_type.last == :regexp … … 740 747 # end 741 748 # when /\A(.*)(\/\})/ #V_REGEXP /} 742 when /\A([^\/]+)/ #V_REGEXP 749 # when /\A(.*)\/\}/ # REGEXP_BODY 750 when /\A(.*)\// # REGEXP_BODY 751 @adl_type.pop 752 @@logger.debug("#{__FILE__}:#{__LINE__}: RegexScanner::scan REGEXP_BODY = #{$1}") 743 753 yield :REGEXP_BODY, $1 744 # else745 # raise "should not happen at #{data}"746 754 end 747 755 data = $' # variable $' receives the string after the match
Note:
See TracChangeset
for help on using the changeset viewer.