/************************************************************** * * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. * *************************************************************/ #ifndef ADC_PARSEINC_HXX #define ADC_PARSEINC_HXX #include inline char jumpOver( CharacterSource & io_rText, char in_c ) { char cNext; for ( cNext = io_rText.CurChar(); cNext == in_c; cNext = io_rText.MoveOn() ) { } return cNext; } inline char jumpTo( CharacterSource & io_rText, char in_c ) { char cNext; for ( cNext = io_rText.CurChar(); cNext != in_c AND cNext != 0; cNext = io_rText.MoveOn() ) { } return cNext; } inline char jumpTo( CharacterSource & io_rText, char in_c1, char in_c2 ) { char cNext; for ( cNext = io_rText.CurChar(); cNext != in_c1 AND cNext != in_c2 AND cNext != 0; cNext = io_rText.MoveOn() ) { } return cNext; } inline char jumpTo( CharacterSource & io_rText, char in_c1, char in_c2, char in_c3 ) { char cNext; for ( cNext = io_rText.CurChar(); cNext != in_c1 AND cNext != in_c2 AND cNext != in_c3 AND cNext != 0; cNext = io_rText.MoveOn() ) { } return cNext; } inline char jumpTo( CharacterSource & io_rText, char in_c1, char in_c2, char in_c3, char in_c4 ) { char cNext; for ( cNext = io_rText.CurChar(); cNext != in_c1 AND cNext != in_c2 AND cNext != in_c3 AND cNext != in_c4 AND cNext != 0; cNext = io_rText.MoveOn() ) { } return cNext; } inline char jumpOverWhite(CharacterSource & io_rText) { char cNext; for ( cNext = io_rText.CurChar(); static_cast(cNext) < 33 AND cNext != 0 AND cNext != 13 AND cNext != 10; cNext = io_rText.MoveOn() ) { } return cNext; } inline char jumpToWhite(CharacterSource & io_rText) { char cNext; for ( cNext = io_rText.CurChar(); static_cast(cNext) > 32; cNext = io_rText.MoveOn() ) { } return cNext; } inline char jumpToEol(CharacterSource & io_rText, int & o_rCount_BackslashedLineBreaks ) { o_rCount_BackslashedLineBreaks = 0; char cNext; for ( cNext = io_rText.CurChar(); cNext != 13 AND cNext != 10 AND cNext != NULCH; cNext = io_rText.MoveOn() ) { if ( cNext == '\\') { cNext = io_rText.MoveOn(); if ( cNext == 13 ) io_rText.MoveOn(); if ( cNext == 10 ) ++o_rCount_BackslashedLineBreaks; } } return cNext; } inline char jumpToEol(CharacterSource & io_rText) { char cNext; for ( cNext = io_rText.CurChar(); cNext != 13 AND cNext != 10 AND cNext != NULCH; cNext = io_rText.MoveOn() ) { if ( cNext == '\\') io_rText.MoveOn(); } return cNext; } inline char jumpOverEol(CharacterSource & io_rText) { char cNext = io_rText.CurChar(); if (cNext == 13) io_rText.MoveOn(); if (cNext == 10) io_rText.MoveOn(); return cNext; } inline char // Finds a matching closing bracket after the opening one is passed jumpToMatchingBracket( CharacterSource & io_rText, char in_cBegin, char in_cEnd ) { intt nCounter = 1; char cNext; for ( cNext = io_rText.CurChar(); nCounter - (cNext == in_cEnd ? 1 : 0) > 0 AND cNext != NULCH; cNext = io_rText.MoveOn() ) { if (cNext == in_cEnd) nCounter++; else if (cNext == in_cBegin) nCounter--; } return cNext; } #endif