Changeset 167 for ruby/branches/0.5.0/lib/adl_parser
- Timestamp:
- Aug 6, 2009, 1:20:05 AM (15 years ago)
- Location:
- ruby/branches/0.5.0/lib/adl_parser
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
ruby/branches/0.5.0/lib/adl_parser/lib/adl_parser.rb
r49 r167 9 9 require 'logger' 10 10 11 module OpenE HR11 module OpenEhr 12 12 13 13 if $DEBUG -
ruby/branches/0.5.0/lib/adl_parser/lib/parser.rb
r116 r167 20 20 21 21 22 module OpenE HR22 module OpenEhr 23 23 module ADL 24 24 class Parser < Racc::Parser -
ruby/branches/0.5.0/lib/adl_parser/lib/scanner.rb
r49 r167 4 4 5 5 6 module OpenE HR6 module OpenEhr 7 7 module ADL 8 8 module Scanner … … 13 13 @parser = lambda do |input| 14 14 Yaparc::Apply.new(Yaparc::Regex.new(/\A\[[a-zA-Z0-9()\._-]+::[a-zA-Z0-9\._-]+\]/)) do |match| 15 OpenE HR::LOG.debug("V_QUALIFIED_TERM_CODE_REF: #{match}")15 OpenEhr::LOG.debug("V_QUALIFIED_TERM_CODE_REF: #{match}") 16 16 [:V_QUALIFIED_TERM_CODE_REF, match] 17 17 end … … 25 25 @parser = lambda do |input| 26 26 Yaparc::Apply.new(Yaparc::Regex.new(/\A\[[a-zA-Z0-9][a-zA-Z0-9._\-]*\]/)) do |match| 27 OpenE HR::LOG.debug("V_TERM_CODE_REF: #{match}")27 OpenEhr::LOG.debug("V_TERM_CODE_REF: #{match}") 28 28 [:V_LOCAL_TERM_CODE_REF, match] 29 29 end … … 37 37 @parser = lambda do |input| 38 38 Yaparc::Apply.new(Yaparc::Regex.new(/\A\[[a-zA-Z0-9._\- ]+::[a-zA-Z0-9._\- ]+\]/)) do |match| 39 OpenE HR::LOG.debug("ERR_V_QUALIFIED_TERM_CODE_REF: #{match}")39 OpenEhr::LOG.debug("ERR_V_QUALIFIED_TERM_CODE_REF: #{match}") 40 40 [:ERR_V_QUALIFIED_TERM_CODE_REF, match] 41 41 end … … 49 49 @parser = lambda do |input| 50 50 Yaparc::Apply.new(Yaparc::Regex.new(/\A[A-Z][a-zA-Z0-9_]*/)) do |match| 51 OpenE HR::LOG.debug("V_TYPE_IDENTIFIER: #{match}")51 OpenEhr::LOG.debug("V_TYPE_IDENTIFIER: #{match}") 52 52 [:V_TYPE_IDENTIFIER, match] 53 53 end … … 61 61 @parser = lambda do |input| 62 62 Yaparc::Apply.new(Yaparc::Regex.new(/\A[A-Z][a-zA-Z0-9_]*<[a-zA-Z0-9,_<>]+>/)) do |match| 63 OpenE HR::LOG.debug("V_GENERIC_TYPE_IDENTIFIER: #{match}")63 OpenEhr::LOG.debug("V_GENERIC_TYPE_IDENTIFIER: #{match}") 64 64 [:V_GENERIC_TYPE_IDENTIFIER, match] 65 65 end … … 74 74 @parser = lambda do |input| 75 75 Yaparc::Apply.new(Yaparc::Regex.new(/\Aa[ct][0-9.]+/)) do |match| 76 OpenE HR::LOG.debug("V_LOCAL_CODE: #{match}")76 OpenEhr::LOG.debug("V_LOCAL_CODE: #{match}") 77 77 [:V_LOCAL_CODE, match] 78 78 end … … 86 86 @parser = lambda do |input| 87 87 Yaparc::Apply.new(Yaparc::Regex.new(/\A"([^"]*)"/m)) do |match| 88 OpenE HR::LOG.debug("V_STRING: #{match}")88 OpenEhr::LOG.debug("V_STRING: #{match}") 89 89 [:V_STRING, match] 90 90 end … … 98 98 @parser = lambda do |input| 99 99 Yaparc::Apply.new(Yaparc::Regex.new(/\A[0-9]+\.[0-9]+|[0-9]+\.[0-9]+[eE][+-]?[0-9]+/)) do |match| 100 OpenE HR::LOG.debug("V_REAL: #{match}")100 OpenEhr::LOG.debug("V_REAL: #{match}") 101 101 [:V_REAL, match] 102 102 end … … 113 113 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])?/), 114 114 Yaparc::Regex.new(/\AP([0-9]+|[yY])?([0-9]+|[mM])?([0-9]+|[wW])?([0-9]+|[dD])?/))) do |match| 115 OpenE HR::LOG.debug("V_ISO8601_DURATION: #{match}")115 OpenEhr::LOG.debug("V_ISO8601_DURATION: #{match}") 116 116 [:V_ISO8601_DURATION, match] 117 117 end … … 135 135 @parser = lambda do |input| 136 136 Yaparc::Alt.new(Reserved.new, 137 OpenE HR::ADL::Scanner::Common::V_QUALIFIED_TERM_CODE_REF.new,138 OpenE HR::ADL::Scanner::Common::V_LOCAL_TERM_CODE_REF.new,139 OpenE HR::ADL::Scanner::Common::ERR_V_QUALIFIED_TERM_CODE_REF.new,140 OpenE HR::ADL::Scanner::Common::V_TYPE_IDENTIFIER.new,141 OpenE HR::ADL::Scanner::Common::V_GENERIC_TYPE_IDENTIFIER.new,142 OpenE HR::ADL::Scanner::Common::V_STRING.new,143 OpenE HR::ADL::Scanner::Common::V_LOCAL_CODE.new,144 OpenE HR::ADL::Scanner::Common::V_REAL.new,145 OpenE HR::ADL::Scanner::Common::V_ISO8601_DURATION.new137 OpenEhr::ADL::Scanner::Common::V_QUALIFIED_TERM_CODE_REF.new, 138 OpenEhr::ADL::Scanner::Common::V_LOCAL_TERM_CODE_REF.new, 139 OpenEhr::ADL::Scanner::Common::ERR_V_QUALIFIED_TERM_CODE_REF.new, 140 OpenEhr::ADL::Scanner::Common::V_TYPE_IDENTIFIER.new, 141 OpenEhr::ADL::Scanner::Common::V_GENERIC_TYPE_IDENTIFIER.new, 142 OpenEhr::ADL::Scanner::Common::V_STRING.new, 143 OpenEhr::ADL::Scanner::Common::V_LOCAL_CODE.new, 144 OpenEhr::ADL::Scanner::Common::V_REAL.new, 145 OpenEhr::ADL::Scanner::Common::V_ISO8601_DURATION.new 146 146 ) 147 147 end … … 155 155 def initialize 156 156 @parser = lambda do |input| 157 reserved_parsers = OpenE HR::ADL::Scanner::DADL::RESERVED.map do |keyword|157 reserved_parsers = OpenEhr::ADL::Scanner::DADL::RESERVED.map do |keyword| 158 158 Yaparc::Tokenize.new( 159 159 Yaparc::Literal.new(keyword[0],false) … … 161 161 end 162 162 Yaparc::Alt.new(Yaparc::Apply.new(Yaparc::Alt.new(*reserved_parsers)) do |match| 163 OpenE HR::LOG.debug("Reserved: #{match}")164 [OpenE HR::ADL::Scanner::DADL::RESERVED[match], OpenEHR::ADL::Scanner::DADL::RESERVED[match]]163 OpenEhr::LOG.debug("Reserved: #{match}") 164 [OpenEhr::ADL::Scanner::DADL::RESERVED[match], OpenEhr::ADL::Scanner::DADL::RESERVED[match]] 165 165 end, 166 166 Yaparc::Apply.new(Yaparc::Regex.new(/\A[a-z][a-zA-Z0-9_]*/)) do |match| 167 OpenE HR::LOG.debug("V_ATTRIBUTE_IDENTIFIER: #{match}")167 OpenEhr::LOG.debug("V_ATTRIBUTE_IDENTIFIER: #{match}") 168 168 [:V_ATTRIBUTE_IDENTIFIER, match] 169 169 end) … … 213 213 @parser = lambda do |input| 214 214 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| 215 OpenE HR::LOG.debug("V_ISO8601_DATE_TIME_CONSTRAINT_PATTERN: #{match}")215 OpenEhr::LOG.debug("V_ISO8601_DATE_TIME_CONSTRAINT_PATTERN: #{match}") 216 216 [:V_ISO8601_DATE_TIME_CONSTRAINT_PATTERN, match] 217 217 end … … 226 226 @parser = lambda do |input| 227 227 Yaparc::Apply.new(Yaparc::Regex.new(/\A[yY][yY][yY][yY]-[mM?X][mM?X]-[dD?X][dD?X]/)) do |match| 228 OpenE HR::LOG.debug("V_ISO8601_DATE_CONSTRAINT_PATTERN: #{match}")228 OpenEhr::LOG.debug("V_ISO8601_DATE_CONSTRAINT_PATTERN: #{match}") 229 229 [:V_ISO8601_DATE_CONSTRAINT_PATTERN, match] 230 230 end … … 239 239 @parser = lambda do |input| 240 240 Yaparc::Apply.new(Yaparc::Regex.new(/\A[hH][hH]:[mM?X][mM?X]:[sS?X][sS?X]/)) do |match| 241 OpenE HR::LOG.debug("V_ISO8601_TIME_CONSTRAINT_PATTERN: #{match}")241 OpenEhr::LOG.debug("V_ISO8601_TIME_CONSTRAINT_PATTERN: #{match}") 242 242 [:V_ISO8601_TIME_CONSTRAINT_PATTERN, match] 243 243 end … … 253 253 Yaparc::Apply.new(Yaparc::Alt.new(Yaparc::Regex.new(/\AP[yY]?[mM]?[wW]?[dD]?T[hH]?[mM]?[sS]?/), 254 254 Yaparc::Regex.new(/\AP[yY]?[mM]?[wW]?[dD]?/))) do |match| 255 OpenE HR::LOG.debug("V_ISO8601_DURATION_CONSTRAINT_PATTERN: #{match}")255 OpenEhr::LOG.debug("V_ISO8601_DURATION_CONSTRAINT_PATTERN: #{match}") 256 256 [:V_ISO8601_DURATION_CONSTRAINT_PATTERN, match] 257 257 end … … 266 266 @parser = lambda do |input| 267 267 Yaparc::Apply.new(Yaparc::Regex.new(/\A[A-Z][a-zA-Z0-9_]*[ \n]*\</)) do |match| 268 OpenE HR::LOG.debug("V_C_DOMAIN_TYPE: #{match}")268 OpenEhr::LOG.debug("V_C_DOMAIN_TYPE: #{match}") 269 269 [:START_V_C_DOMAIN_TYPE_BLOCK, match] 270 270 end … … 280 280 V_ISO8601_DATE_CONSTRAINT_PATTERN.new, 281 281 V_ISO8601_TIME_CONSTRAINT_PATTERN.new, 282 OpenE HR::ADL::Scanner::Common::V_ISO8601_DURATION.new,282 OpenEhr::ADL::Scanner::Common::V_ISO8601_DURATION.new, 283 283 V_C_DOMAIN_TYPE.new, 284 284 V_ISO8601_DURATION_CONSTRAINT_PATTERN.new, 285 285 Reserved.new, 286 OpenE HR::ADL::Scanner::Common::V_QUALIFIED_TERM_CODE_REF.new,287 OpenE HR::ADL::Scanner::Common::V_LOCAL_TERM_CODE_REF.new,288 OpenE HR::ADL::Scanner::Common::ERR_V_QUALIFIED_TERM_CODE_REF.new,289 OpenE HR::ADL::Scanner::Common::V_TYPE_IDENTIFIER.new,290 OpenE HR::ADL::Scanner::Common::V_GENERIC_TYPE_IDENTIFIER.new,291 OpenE HR::ADL::Scanner::Common::V_STRING.new,292 OpenE HR::ADL::Scanner::Common::V_LOCAL_CODE.new,293 OpenE HR::ADL::Scanner::Common::V_REAL.new,294 OpenE HR::ADL::Scanner::Common::V_ISO8601_DURATION.new286 OpenEhr::ADL::Scanner::Common::V_QUALIFIED_TERM_CODE_REF.new, 287 OpenEhr::ADL::Scanner::Common::V_LOCAL_TERM_CODE_REF.new, 288 OpenEhr::ADL::Scanner::Common::ERR_V_QUALIFIED_TERM_CODE_REF.new, 289 OpenEhr::ADL::Scanner::Common::V_TYPE_IDENTIFIER.new, 290 OpenEhr::ADL::Scanner::Common::V_GENERIC_TYPE_IDENTIFIER.new, 291 OpenEhr::ADL::Scanner::Common::V_STRING.new, 292 OpenEhr::ADL::Scanner::Common::V_LOCAL_CODE.new, 293 OpenEhr::ADL::Scanner::Common::V_REAL.new, 294 OpenEhr::ADL::Scanner::Common::V_ISO8601_DURATION.new 295 295 ) 296 296 end … … 310 310 end 311 311 Yaparc::Alt.new(Yaparc::Apply.new(Yaparc::Alt.new(*reserved_parsers)) do |match| 312 OpenE HR::LOG.debug("Reserved: #{match}")313 [OpenE HR::ADL::Scanner::CADL::RESERVED[match], OpenEHR::ADL::Scanner::CADL::RESERVED[match]]312 OpenEhr::LOG.debug("Reserved: #{match}") 313 [OpenEhr::ADL::Scanner::CADL::RESERVED[match], OpenEhr::ADL::Scanner::CADL::RESERVED[match]] 314 314 end, 315 315 Yaparc::Apply.new(Yaparc::Regex.new(/\A[a-z][a-zA-Z0-9_]*/)) do |match| 316 OpenE HR::LOG.debug("V_ATTRIBUTE_IDENTIFIER: #{match}")316 OpenEhr::LOG.debug("V_ATTRIBUTE_IDENTIFIER: #{match}") 317 317 [:V_ATTRIBUTE_IDENTIFIER, match] 318 318 end) -
ruby/branches/0.5.0/lib/adl_parser/lib/shell.rb
r164 r167 3 3 require 'stringio' 4 4 5 module OpenE HR5 module OpenEhr 6 6 module Application 7 7 class Shell -
ruby/branches/0.5.0/lib/adl_parser/lib/validator.rb
r49 r167 3 3 4 4 5 module OpenE HR5 module OpenEhr 6 6 module ADL 7 7 -
ruby/branches/0.5.0/lib/adl_parser/test/parser_test.rb
r116 r167 16 16 assert_nothing_raised do 17 17 result = @parser.parse(laboratory_request, 'openEHR-EHR-ITEM_TREE.Laboratory_request.v1.adl') 18 assert_instance_of OpenE HR::AM::Archetype::ARCHETYPE, result19 assert_instance_of OpenE HR::AM::Archetype::Archetype_Description::ARCHETYPE_DESCRIPTION, result.description20 assert_instance_of OpenE HR::AM::Archetype::Constraint_Model::C_COMPLEX_OBJECT, result.definition18 assert_instance_of OpenEhr::AM::Archetype::ARCHETYPE, result 19 assert_instance_of OpenEhr::AM::Archetype::Archetype_Description::ARCHETYPE_DESCRIPTION, result.description 20 assert_instance_of OpenEhr::AM::Archetype::Constraint_Model::C_COMPLEX_OBJECT, result.definition 21 21 # assert_equal '', result.definition 22 22 end … … 25 25 assert_nothing_raised do 26 26 result = @parser.parse(apgar, 'openEHR-EHR-OBSERVATION.apgar.v1.adl') 27 assert_instance_of OpenE HR::AM::Archetype::ARCHETYPE, result28 assert_instance_of OpenE HR::AM::Archetype::Archetype_Description::ARCHETYPE_DESCRIPTION, result.description29 assert_instance_of OpenE HR::AM::Archetype::Constraint_Model::C_COMPLEX_OBJECT, result.definition27 assert_instance_of OpenEhr::AM::Archetype::ARCHETYPE, result 28 assert_instance_of OpenEhr::AM::Archetype::Archetype_Description::ARCHETYPE_DESCRIPTION, result.description 29 assert_instance_of OpenEhr::AM::Archetype::Constraint_Model::C_COMPLEX_OBJECT, result.definition 30 30 end 31 31 -
ruby/branches/0.5.0/lib/adl_parser/test/scanner_test.rb
r116 r167 5 5 class YaparcParserTest < Test::Unit::TestCase 6 6 def test_RootScanner 7 parser = OpenE HR::ADL::Scanner::DADL::RootScanner.new8 assert_instance_of OpenE HR::ADL::Scanner::DADL::RootScanner,parser7 parser = OpenEhr::ADL::Scanner::DADL::RootScanner.new 8 assert_instance_of OpenEhr::ADL::Scanner::DADL::RootScanner,parser 9 9 result = parser.parse('') 10 10 end 11 11 12 12 def test_V_LOCAL_TERM_CODE_REF 13 parser = OpenE HR::ADL::Scanner::Common::V_LOCAL_TERM_CODE_REF.new14 assert_instance_of OpenE HR::ADL::Scanner::Common::V_LOCAL_TERM_CODE_REF,parser13 parser = OpenEhr::ADL::Scanner::Common::V_LOCAL_TERM_CODE_REF.new 14 assert_instance_of OpenEhr::ADL::Scanner::Common::V_LOCAL_TERM_CODE_REF,parser 15 15 result = parser.parse('[en-us]') 16 16 assert_instance_of Yaparc::Result::OK, result … … 18 18 19 19 def test_V_QUALIFIED_TERM_CODE_REF 20 parser = OpenE HR::ADL::Scanner::Common::V_QUALIFIED_TERM_CODE_REF.new21 assert_instance_of OpenE HR::ADL::Scanner::Common::V_QUALIFIED_TERM_CODE_REF,parser20 parser = OpenEhr::ADL::Scanner::Common::V_QUALIFIED_TERM_CODE_REF.new 21 assert_instance_of OpenEhr::ADL::Scanner::Common::V_QUALIFIED_TERM_CODE_REF,parser 22 22 result = parser.parse('[ISO_639::en]') 23 23 assert_instance_of Yaparc::Result::OK, result … … 27 27 28 28 def test_V_STRING 29 parser = OpenE HR::ADL::Scanner::Common::V_STRING.new30 assert_instance_of OpenE HR::ADL::Scanner::Common::V_STRING,parser29 parser = OpenEhr::ADL::Scanner::Common::V_STRING.new 30 assert_instance_of OpenEhr::ADL::Scanner::Common::V_STRING,parser 31 31 result = parser.parse('"this is a string"') 32 32 assert_instance_of Yaparc::Result::OK, result … … 36 36 37 37 def test_V_REAL 38 parser = OpenE HR::ADL::Scanner::Common::V_REAL.new39 assert_instance_of OpenE HR::ADL::Scanner::Common::V_REAL,parser38 parser = OpenEhr::ADL::Scanner::Common::V_REAL.new 39 assert_instance_of OpenEhr::ADL::Scanner::Common::V_REAL,parser 40 40 result = parser.parse('0.1') 41 41 assert_instance_of Yaparc::Result::OK, result … … 47 47 48 48 def test_V_ISO8601_DURATION 49 parser = OpenE HR::ADL::Scanner::Common::V_ISO8601_DURATION.new50 assert_instance_of OpenE HR::ADL::Scanner::Common::V_ISO8601_DURATION,parser49 parser = OpenEhr::ADL::Scanner::Common::V_ISO8601_DURATION.new 50 assert_instance_of OpenEhr::ADL::Scanner::Common::V_ISO8601_DURATION,parser 51 51 result = parser.parse('PT1M') 52 52 assert_instance_of Yaparc::Result::OK, result … … 57 57 58 58 def test_V_ISO8601_DATE_TIME_CONSTRAINT_PATTERN 59 parser = OpenE HR::ADL::Scanner::CADL::V_ISO8601_DATE_TIME_CONSTRAINT_PATTERN.new60 assert_instance_of OpenE HR::ADL::Scanner::CADL::V_ISO8601_DATE_TIME_CONSTRAINT_PATTERN,parser59 parser = OpenEhr::ADL::Scanner::CADL::V_ISO8601_DATE_TIME_CONSTRAINT_PATTERN.new 60 assert_instance_of OpenEhr::ADL::Scanner::CADL::V_ISO8601_DATE_TIME_CONSTRAINT_PATTERN,parser 61 61 result = parser.parse('yyyy-??-??T??:??:??') 62 62 assert_instance_of Yaparc::Result::OK, result … … 64 64 65 65 def test_V_ISO8601_DATE_CONSTRAINT_PATTERN 66 parser = OpenE HR::ADL::Scanner::CADL::V_ISO8601_DATE_CONSTRAINT_PATTERN.new67 assert_instance_of OpenE HR::ADL::Scanner::CADL::V_ISO8601_DATE_CONSTRAINT_PATTERN,parser66 parser = OpenEhr::ADL::Scanner::CADL::V_ISO8601_DATE_CONSTRAINT_PATTERN.new 67 assert_instance_of OpenEhr::ADL::Scanner::CADL::V_ISO8601_DATE_CONSTRAINT_PATTERN,parser 68 68 result = parser.parse('yyyy-mm-XX-dd') 69 69 assert_instance_of Yaparc::Result::OK, result … … 71 71 72 72 def test_V_ISO8601_TIME_CONSTRAINT_PATTERN 73 parser = OpenE HR::ADL::Scanner::CADL::V_ISO8601_TIME_CONSTRAINT_PATTERN.new74 assert_instance_of OpenE HR::ADL::Scanner::CADL::V_ISO8601_TIME_CONSTRAINT_PATTERN,parser73 parser = OpenEhr::ADL::Scanner::CADL::V_ISO8601_TIME_CONSTRAINT_PATTERN.new 74 assert_instance_of OpenEhr::ADL::Scanner::CADL::V_ISO8601_TIME_CONSTRAINT_PATTERN,parser 75 75 result = parser.parse('hh:mm:ss:??') 76 76 assert_instance_of Yaparc::Result::OK, result … … 78 78 79 79 def test_dadl_reserved 80 parser = OpenE HR::ADL::Scanner::DADL::RootScanner.new80 parser = OpenEhr::ADL::Scanner::DADL::RootScanner.new 81 81 result = parser.parse('then') 82 82 assert_instance_of Yaparc::Result::OK, result … … 87 87 88 88 def test_cadl 89 parser = OpenE HR::ADL::Scanner::CADL::RootScanner.new90 assert_instance_of OpenE HR::ADL::Scanner::CADL::RootScanner,parser89 parser = OpenEhr::ADL::Scanner::CADL::RootScanner.new 90 assert_instance_of OpenEhr::ADL::Scanner::CADL::RootScanner,parser 91 91 result = parser.parse('PT1M') 92 92 assert_instance_of Yaparc::Result::OK, result … … 98 98 99 99 def test_cadl_reserved 100 parser = OpenE HR::ADL::Scanner::CADL::RootScanner.new100 parser = OpenEhr::ADL::Scanner::CADL::RootScanner.new 101 101 result = parser.parse('then') 102 102 assert_instance_of Yaparc::Result::OK, result
Note:
See TracChangeset
for help on using the changeset viewer.