Changeset 167 for ruby/branches/0.5.0/lib/adl_parser/lib/scanner.rb
- Timestamp:
- Aug 6, 2009, 1:20:05 AM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
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)
Note:
See TracChangeset
for help on using the changeset viewer.