Changeset 168 for ruby/branches/0.0/adl_parser
- Timestamp:
- Aug 6, 2009, 9:06:59 AM (15 years ago)
- Location:
- ruby/branches/0.0/adl_parser
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
ruby/branches/0.0/adl_parser/bin/adl_validator.rb
r167 r168 7 7 require 'net/http' 8 8 9 module OpenE hr9 module OpenEHR 10 10 module CommandLine 11 11 class Arguments < Hash … … 40 40 when /\A(http:\/\/.*)/ 41 41 name = $1 42 input = case response = Net::HTTP.get_response(U ri.parse($1))42 input = case response = Net::HTTP.get_response(URI.parse($1)) 43 43 when Net::HTTPSuccess 44 44 response.body … … 74 74 if __FILE__ == $0 75 75 begin 76 arguments = OpenE hr::CommandLine::Arguments.new(ARGV)77 validator = OpenE hr::CommandLine::ADLValidator.new(arguments)76 arguments = OpenEHR::CommandLine::Arguments.new(ARGV) 77 validator = OpenEHR::CommandLine::ADLValidator.new(arguments) 78 78 validator.run 79 79 end -
ruby/branches/0.0/adl_parser/lib/model.rb
r167 r168 2 2 3 3 4 module OpenE hr4 module OpenEHR 5 5 module ADL 6 6 module Model -
ruby/branches/0.0/adl_parser/lib/parser.rb
r167 r168 20 20 21 21 22 module OpenE hr22 module OpenEHR 23 23 24 24 module ADL -
ruby/branches/0.0/adl_parser/lib/scanner.rb
r167 r168 5 5 6 6 7 module OpenE hr7 module OpenEHR 8 8 module ADL 9 9 module Scanner … … 138 138 @parser = lambda do |input| 139 139 Yaparc::Alt.new(Reserved.new, 140 OpenE hr::ADL::Scanner::Common::V_QUALIFIED_TERM_CODE_REF.new,141 OpenE hr::ADL::Scanner::Common::V_LOCAL_TERM_CODE_REF.new,142 OpenE hr::ADL::Scanner::Common::ERR_V_QUALIFIED_TERM_CODE_REF.new,143 OpenE hr::ADL::Scanner::Common::V_TYPE_IDENTIFIER.new,144 OpenE hr::ADL::Scanner::Common::V_GENERIC_TYPE_IDENTIFIER.new,145 OpenE hr::ADL::Scanner::Common::V_STRING.new,146 OpenE hr::ADL::Scanner::Common::V_LOCAL_CODE.new,147 OpenE hr::ADL::Scanner::Common::V_REAL.new,148 OpenE hr::ADL::Scanner::Common::V_ISO8601_DURATION.new140 OpenEHR::ADL::Scanner::Common::V_QUALIFIED_TERM_CODE_REF.new, 141 OpenEHR::ADL::Scanner::Common::V_LOCAL_TERM_CODE_REF.new, 142 OpenEHR::ADL::Scanner::Common::ERR_V_QUALIFIED_TERM_CODE_REF.new, 143 OpenEHR::ADL::Scanner::Common::V_TYPE_IDENTIFIER.new, 144 OpenEHR::ADL::Scanner::Common::V_GENERIC_TYPE_IDENTIFIER.new, 145 OpenEHR::ADL::Scanner::Common::V_STRING.new, 146 OpenEHR::ADL::Scanner::Common::V_LOCAL_CODE.new, 147 OpenEHR::ADL::Scanner::Common::V_REAL.new, 148 OpenEHR::ADL::Scanner::Common::V_ISO8601_DURATION.new 149 149 ) 150 150 end … … 157 157 def initialize 158 158 @parser = lambda do |input| 159 reserved_parsers = OpenE hr::ADL::Scanner::DADL::RESERVED.map do |keyword|159 reserved_parsers = OpenEHR::ADL::Scanner::DADL::RESERVED.map do |keyword| 160 160 Yaparc::Tokenize.new( 161 161 Yaparc::Literal.new(keyword[0]) … … 163 163 end 164 164 Yaparc::Alt.new(Yaparc::Apply.new(Yaparc::Alt.new(*reserved_parsers)) do |match| 165 OpenE hr::ADL::Scanner::Common::LOG.info("Reserved: #{match}")166 [OpenE hr::ADL::Scanner::DADL::RESERVED[match], OpenEhr::ADL::Scanner::DADL::RESERVED[match]]165 OpenEHR::ADL::Scanner::Common::LOG.info("Reserved: #{match}") 166 [OpenEHR::ADL::Scanner::DADL::RESERVED[match], OpenEHR::ADL::Scanner::DADL::RESERVED[match]] 167 167 end, 168 168 Yaparc::Apply.new(Yaparc::Regex.new(/\A[a-z][a-zA-Z0-9_]*/)) do |match| 169 OpenE hr::ADL::Scanner::Common::LOG.info("V_ATTRIBUTE_IDENTIFIER: #{match}")169 OpenEHR::ADL::Scanner::Common::LOG.info("V_ATTRIBUTE_IDENTIFIER: #{match}") 170 170 [:V_ATTRIBUTE_IDENTIFIER, match] 171 171 end) … … 215 215 @parser = lambda do |input| 216 216 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| 217 OpenE hr::ADL::Scanner::Common::LOG.info("V_ISO8601_DATE_TIME_CONSTRAINT_PATTERN: #{match}")217 OpenEHR::ADL::Scanner::Common::LOG.info("V_ISO8601_DATE_TIME_CONSTRAINT_PATTERN: #{match}") 218 218 [:V_ISO8601_DATE_TIME_CONSTRAINT_PATTERN, match] 219 219 end … … 228 228 @parser = lambda do |input| 229 229 Yaparc::Apply.new(Yaparc::Regex.new(/\A[yY][yY][yY][yY]-[mM?X][mM?X]-[dD?X][dD?X]/)) do |match| 230 OpenE hr::ADL::Scanner::Common::LOG.info("V_ISO8601_DATE_CONSTRAINT_PATTERN: #{match}")230 OpenEHR::ADL::Scanner::Common::LOG.info("V_ISO8601_DATE_CONSTRAINT_PATTERN: #{match}") 231 231 [:V_ISO8601_DATE_CONSTRAINT_PATTERN, match] 232 232 end … … 241 241 @parser = lambda do |input| 242 242 Yaparc::Apply.new(Yaparc::Regex.new(/\A[hH][hH]:[mM?X][mM?X]:[sS?X][sS?X]/)) do |match| 243 OpenE hr::ADL::Scanner::Common::LOG.info("V_ISO8601_TIME_CONSTRAINT_PATTERN: #{match}")243 OpenEHR::ADL::Scanner::Common::LOG.info("V_ISO8601_TIME_CONSTRAINT_PATTERN: #{match}") 244 244 [:V_ISO8601_TIME_CONSTRAINT_PATTERN, match] 245 245 end … … 255 255 Yaparc::Apply.new(Yaparc::Alt.new(Yaparc::Regex.new(/\AP[yY]?[mM]?[wW]?[dD]?T[hH]?[mM]?[sS]?/), 256 256 Yaparc::Regex.new(/\AP[yY]?[mM]?[wW]?[dD]?/))) do |match| 257 OpenE hr::ADL::Scanner::Common::LOG.info("V_ISO8601_DURATION_CONSTRAINT_PATTERN: #{match}")257 OpenEHR::ADL::Scanner::Common::LOG.info("V_ISO8601_DURATION_CONSTRAINT_PATTERN: #{match}") 258 258 [:V_ISO8601_DURATION_CONSTRAINT_PATTERN, match] 259 259 end … … 268 268 @parser = lambda do |input| 269 269 Yaparc::Apply.new(Yaparc::Regex.new(/\A[A-Z][a-zA-Z0-9_]*[ \n]*\</)) do |match| 270 OpenE hr::ADL::Scanner::Common::LOG.info("V_C_DOMAIN_TYPE: #{match}")270 OpenEHR::ADL::Scanner::Common::LOG.info("V_C_DOMAIN_TYPE: #{match}") 271 271 [:START_V_C_DOMAIN_TYPE_BLOCK, match] 272 272 end … … 282 282 V_ISO8601_DATE_CONSTRAINT_PATTERN.new, 283 283 V_ISO8601_TIME_CONSTRAINT_PATTERN.new, 284 OpenE hr::ADL::Scanner::Common::V_ISO8601_DURATION.new,284 OpenEHR::ADL::Scanner::Common::V_ISO8601_DURATION.new, 285 285 V_C_DOMAIN_TYPE.new, 286 286 V_ISO8601_DURATION_CONSTRAINT_PATTERN.new, 287 287 Reserved.new, 288 OpenE hr::ADL::Scanner::Common::V_QUALIFIED_TERM_CODE_REF.new,289 OpenE hr::ADL::Scanner::Common::V_LOCAL_TERM_CODE_REF.new,290 OpenE hr::ADL::Scanner::Common::ERR_V_QUALIFIED_TERM_CODE_REF.new,291 OpenE hr::ADL::Scanner::Common::V_TYPE_IDENTIFIER.new,292 OpenE hr::ADL::Scanner::Common::V_GENERIC_TYPE_IDENTIFIER.new,293 OpenE hr::ADL::Scanner::Common::V_STRING.new,294 OpenE hr::ADL::Scanner::Common::V_LOCAL_CODE.new,295 OpenE hr::ADL::Scanner::Common::V_REAL.new,296 OpenE hr::ADL::Scanner::Common::V_ISO8601_DURATION.new288 OpenEHR::ADL::Scanner::Common::V_QUALIFIED_TERM_CODE_REF.new, 289 OpenEHR::ADL::Scanner::Common::V_LOCAL_TERM_CODE_REF.new, 290 OpenEHR::ADL::Scanner::Common::ERR_V_QUALIFIED_TERM_CODE_REF.new, 291 OpenEHR::ADL::Scanner::Common::V_TYPE_IDENTIFIER.new, 292 OpenEHR::ADL::Scanner::Common::V_GENERIC_TYPE_IDENTIFIER.new, 293 OpenEHR::ADL::Scanner::Common::V_STRING.new, 294 OpenEHR::ADL::Scanner::Common::V_LOCAL_CODE.new, 295 OpenEHR::ADL::Scanner::Common::V_REAL.new, 296 OpenEHR::ADL::Scanner::Common::V_ISO8601_DURATION.new 297 297 ) 298 298 end … … 310 310 end 311 311 Yaparc::Alt.new(Yaparc::Apply.new(Yaparc::Alt.new(*reserved_parsers)) do |match| 312 OpenE hr::ADL::Scanner::Common::LOG.info("Reserved: #{match}")313 [OpenE hr::ADL::Scanner::CADL::RESERVED[match], OpenEhr::ADL::Scanner::CADL::RESERVED[match]]312 OpenEHR::ADL::Scanner::Common::LOG.info("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::ADL::Scanner::Common::LOG.info("V_ATTRIBUTE_IDENTIFIER: #{match}")316 OpenEHR::ADL::Scanner::Common::LOG.info("V_ATTRIBUTE_IDENTIFIER: #{match}") 317 317 [:V_ATTRIBUTE_IDENTIFIER, match] 318 318 end) -
ruby/branches/0.0/adl_parser/lib/shell.rb
r167 r168 3 3 require 'stringio' 4 4 5 module OpenE hr5 module OpenEHR 6 6 module Application 7 7 class Shell -
ruby/branches/0.0/adl_parser/lib/validator.rb
r167 r168 3 3 4 4 5 module OpenE hr5 module OpenEHR 6 6 module ADL 7 7 -
ruby/branches/0.0/adl_parser/tests/parser_test.rb
r167 r168 15 15 assert_nothing_raised do 16 16 result = @parser.parse(laboratory_request, 'openEHR-EHR-ITEM_TREE.Laboratory_request.v1.adl') 17 assert_instance_of OpenE hr::AM::Archetype::ARCHETYPE, result18 assert_instance_of OpenE hr::AM::Archetype::Archetype_Description::ARCHETYPE_DESCRIPTION, result.description19 assert_instance_of OpenE hr::AM::Archetype::Constraint_Model::C_COMPLEX_OBJECT, result.definition17 assert_instance_of OpenEHR::AM::Archetype::ARCHETYPE, result 18 assert_instance_of OpenEHR::AM::Archetype::Archetype_Description::ARCHETYPE_DESCRIPTION, result.description 19 assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::C_COMPLEX_OBJECT, result.definition 20 20 # assert_equal '', result.definition 21 21 end … … 24 24 assert_nothing_raised do 25 25 result = @parser.parse(apgar, 'openEHR-EHR-OBSERVATION.apgar.v1.adl') 26 assert_instance_of OpenE hr::AM::Archetype::ARCHETYPE, result27 assert_instance_of OpenE hr::AM::Archetype::Archetype_Description::ARCHETYPE_DESCRIPTION, result.description28 assert_instance_of OpenE hr::AM::Archetype::Constraint_Model::C_COMPLEX_OBJECT, result.definition26 assert_instance_of OpenEHR::AM::Archetype::ARCHETYPE, result 27 assert_instance_of OpenEHR::AM::Archetype::Archetype_Description::ARCHETYPE_DESCRIPTION, result.description 28 assert_instance_of OpenEHR::AM::Archetype::Constraint_Model::C_COMPLEX_OBJECT, result.definition 29 29 end 30 30 -
ruby/branches/0.0/adl_parser/tests/scanner_test.rb
r167 r168 4 4 class YaparcParserTest < Test::Unit::TestCase 5 5 def test_RootScanner 6 parser = OpenE hr::ADL::Scanner::DADL::RootScanner.new7 assert_instance_of OpenE hr::ADL::Scanner::DADL::RootScanner,parser6 parser = OpenEHR::ADL::Scanner::DADL::RootScanner.new 7 assert_instance_of OpenEHR::ADL::Scanner::DADL::RootScanner,parser 8 8 result = parser.parse('') 9 9 end 10 10 11 11 def test_V_LOCAL_TERM_CODE_REF 12 parser = OpenE hr::ADL::Scanner::Common::V_LOCAL_TERM_CODE_REF.new13 assert_instance_of OpenE hr::ADL::Scanner::Common::V_LOCAL_TERM_CODE_REF,parser12 parser = OpenEHR::ADL::Scanner::Common::V_LOCAL_TERM_CODE_REF.new 13 assert_instance_of OpenEHR::ADL::Scanner::Common::V_LOCAL_TERM_CODE_REF,parser 14 14 result = parser.parse('[en-us]') 15 15 assert_instance_of Yaparc::Result::OK, result … … 17 17 18 18 def test_V_QUALIFIED_TERM_CODE_REF 19 parser = OpenE hr::ADL::Scanner::Common::V_QUALIFIED_TERM_CODE_REF.new20 assert_instance_of OpenE hr::ADL::Scanner::Common::V_QUALIFIED_TERM_CODE_REF,parser19 parser = OpenEHR::ADL::Scanner::Common::V_QUALIFIED_TERM_CODE_REF.new 20 assert_instance_of OpenEHR::ADL::Scanner::Common::V_QUALIFIED_TERM_CODE_REF,parser 21 21 result = parser.parse('[ISO_639::en]') 22 22 assert_instance_of Yaparc::Result::OK, result … … 26 26 27 27 def test_V_STRING 28 parser = OpenE hr::ADL::Scanner::Common::V_STRING.new29 assert_instance_of OpenE hr::ADL::Scanner::Common::V_STRING,parser28 parser = OpenEHR::ADL::Scanner::Common::V_STRING.new 29 assert_instance_of OpenEHR::ADL::Scanner::Common::V_STRING,parser 30 30 result = parser.parse('"this is a string"') 31 31 assert_instance_of Yaparc::Result::OK, result … … 35 35 36 36 def test_V_REAL 37 parser = OpenE hr::ADL::Scanner::Common::V_REAL.new38 assert_instance_of OpenE hr::ADL::Scanner::Common::V_REAL,parser37 parser = OpenEHR::ADL::Scanner::Common::V_REAL.new 38 assert_instance_of OpenEHR::ADL::Scanner::Common::V_REAL,parser 39 39 result = parser.parse('0.1') 40 40 assert_instance_of Yaparc::Result::OK, result … … 46 46 47 47 def test_V_ISO8601_DURATION 48 parser = OpenE hr::ADL::Scanner::Common::V_ISO8601_DURATION.new49 assert_instance_of OpenE hr::ADL::Scanner::Common::V_ISO8601_DURATION,parser48 parser = OpenEHR::ADL::Scanner::Common::V_ISO8601_DURATION.new 49 assert_instance_of OpenEHR::ADL::Scanner::Common::V_ISO8601_DURATION,parser 50 50 result = parser.parse('PT1M') 51 51 assert_instance_of Yaparc::Result::OK, result … … 56 56 57 57 def test_V_ISO8601_DATE_TIME_CONSTRAINT_PATTERN 58 parser = OpenE hr::ADL::Scanner::CADL::V_ISO8601_DATE_TIME_CONSTRAINT_PATTERN.new59 assert_instance_of OpenE hr::ADL::Scanner::CADL::V_ISO8601_DATE_TIME_CONSTRAINT_PATTERN,parser58 parser = OpenEHR::ADL::Scanner::CADL::V_ISO8601_DATE_TIME_CONSTRAINT_PATTERN.new 59 assert_instance_of OpenEHR::ADL::Scanner::CADL::V_ISO8601_DATE_TIME_CONSTRAINT_PATTERN,parser 60 60 result = parser.parse('yyyy-??-??T??:??:??') 61 61 assert_instance_of Yaparc::Result::OK, result … … 63 63 64 64 def test_V_ISO8601_DATE_CONSTRAINT_PATTERN 65 parser = OpenE hr::ADL::Scanner::CADL::V_ISO8601_DATE_CONSTRAINT_PATTERN.new66 assert_instance_of OpenE hr::ADL::Scanner::CADL::V_ISO8601_DATE_CONSTRAINT_PATTERN,parser65 parser = OpenEHR::ADL::Scanner::CADL::V_ISO8601_DATE_CONSTRAINT_PATTERN.new 66 assert_instance_of OpenEHR::ADL::Scanner::CADL::V_ISO8601_DATE_CONSTRAINT_PATTERN,parser 67 67 result = parser.parse('yyyy-mm-XX-dd') 68 68 assert_instance_of Yaparc::Result::OK, result … … 70 70 71 71 def test_V_ISO8601_TIME_CONSTRAINT_PATTERN 72 parser = OpenE hr::ADL::Scanner::CADL::V_ISO8601_TIME_CONSTRAINT_PATTERN.new73 assert_instance_of OpenE hr::ADL::Scanner::CADL::V_ISO8601_TIME_CONSTRAINT_PATTERN,parser72 parser = OpenEHR::ADL::Scanner::CADL::V_ISO8601_TIME_CONSTRAINT_PATTERN.new 73 assert_instance_of OpenEHR::ADL::Scanner::CADL::V_ISO8601_TIME_CONSTRAINT_PATTERN,parser 74 74 result = parser.parse('hh:mm:ss:??') 75 75 assert_instance_of Yaparc::Result::OK, result … … 77 77 78 78 def test_dadl_reserved 79 parser = OpenE hr::ADL::Scanner::DADL::RootScanner.new79 parser = OpenEHR::ADL::Scanner::DADL::RootScanner.new 80 80 result = parser.parse('then') 81 81 assert_instance_of Yaparc::Result::OK, result … … 86 86 87 87 def test_cadl 88 parser = OpenE hr::ADL::Scanner::CADL::RootScanner.new89 assert_instance_of OpenE hr::ADL::Scanner::CADL::RootScanner,parser88 parser = OpenEHR::ADL::Scanner::CADL::RootScanner.new 89 assert_instance_of OpenEHR::ADL::Scanner::CADL::RootScanner,parser 90 90 result = parser.parse('PT1M') 91 91 assert_instance_of Yaparc::Result::OK, result … … 97 97 98 98 def test_cadl_reserved 99 parser = OpenE hr::ADL::Scanner::CADL::RootScanner.new99 parser = OpenEHR::ADL::Scanner::CADL::RootScanner.new 100 100 result = parser.parse('then') 101 101 assert_instance_of Yaparc::Result::OK, result
Note:
See TracChangeset
for help on using the changeset viewer.