123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312 |
- [/
- (C) Copyright Edward Diener 2011-2015
- Distributed under the Boost Software License, Version 1.0.
- (See accompanying file LICENSE_1_0.txt or copy at
- http://www.boost.org/LICENSE_1_0.txt).
- ]
- [section:vmd_conv Version 1.7 to 1.8 conversion]
- Since the current version of VMD has been drastically changed
- to make it easier to use VMD functionality this section
- details equivalent functionality for previous version 1.7
- VMD macros.
- The changes in functionality involve the parsing of sequences.
- The equivalent to all the V1.7 functionality, which looks for
- various data types at the beginning of a sequence, is encompassed
- by the V1.8 macro BOOST_VMD_ELEM(0,sequence,...), where '0' is the first
- sequence element and 'sequence' is the sequence, with its optional
- parameters.
- [heading Identifier]
- V1.7
- BOOST_VMD_IDENTIFIER(sequence,keys,...) looked for an identifier at
- the beginning of a sequence and returned a 2-element tuple, where the first
- element is the matching index starting with 1, or 0 if no identifier is found,
- and the second tuple element is the rest of the sequence or emptiness if no
- identifier is found.
- V1.8 equivalent
- BOOST_VMD_ELEM(0,sequence,(identifiers),BOOST_VMD_TYPE_IDENTIFIER,BOOST_VMD_RETURN_AFTER,BOOST_VMD_RETURN_INDEX)
- returns a 3-element tuple where the identifier found is the first tuple element,
- the rest of the sequence is the second tuple element, and the matching index, starting with
- 0, is the 3rd tuple element. If no identifier is found all elements of the returned tuple are empty.
- V1.7
- BOOST_VMD_BEGIN_IDENTIFIER(sequence,keys,...) looked for an identifier at
- the beginning of a sequence and returned the matching index starting with 1, or
- 0 if no identifier is found.
- V1.8 equivalent
- BOOST_VMD_ELEM(0,sequence,(identifiers),BOOST_VMD_TYPE_IDENTIFIER,BOOST_VMD_RETURN_INDEX)
- returns a 2-element tuple where the identifier found is the first tuple element
- and the matching index, starting with 0, is the 2nd tuple element. If no identifier
- is found both elements of the returned tuple are empty.
- V1.7
- BOOST_VMD_AFTER_IDENTIFIER(sequence,keys,...) looked for an identifier at the
- beginning of a sequence and returned the rest of the sequence or emptiness if
- no identifier is found.
- V1.8 equivalent
- BOOST_VMD_ELEM(0,sequence,(identifiers),BOOST_VMD_TYPE_IDENTIFIER,BOOST_VMD_RETURN_ONLY_AFTER)
- is the exact equivalent.
- V1.7
- BOOST_VMD_IS_BEGIN_IDENTIFIER(sequence,keys,...) returns 1 if input
- begins with an identifier, else 0 if it does not.
- V1.8 equivalent
- BOOST_VMD_ELEM(0,sequence,(identifiers),BOOST_VMD_TYPE_IDENTIFIER) returns the identifier found,
- otherwise emptiness if not found. You can use
- BOOST_PP_COMPL(BOOST_VMD_IS_EMPTY(BOOST_VMD_ELEM(0,sequence,identifiers,BOOST_VMD_TYPE_IDENTIFIER)))
- as the exact equivalent.
- [heading Number]
- V1.7
- BOOST_VMD_NUMBER(sequence,...) looked for a number at
- the beginning of a sequence and returned a 2-element tuple, where the first
- element is the number and the second tuple element is the rest of the sequence.
- If no number is found both tuple elements are empty.
- V1.8 equivalent
- BOOST_VMD_ELEM(0,sequence,BOOST_VMD_TYPE_NUMBER,BOOST_VMD_RETURN_AFTER)
- is the exact equivalent.
- V1.7
- BOOST_VMD_BEGIN_NUMBER(sequence,...) looked for a number at
- the beginning of a sequence and returned the number if found or emptiness
- if no number is found.
- V1.8 equivalent
- BOOST_VMD_ELEM(0,sequence,BOOST_VMD_TYPE_NUMBER)
- is the exact equivalent.
- V1.7
- BOOST_VMD_AFTER_NUMBER(sequence,...) looked for a number at the
- beginning of a sequence and returned the rest of the sequence or emptiness if
- no number is found.
- V1.8 equivalent
- BOOST_VMD_ELEM(0,sequence,BOOST_VMD_TYPE_NUMBER,BOOST_VMD_RETURN_ONLY_AFTER)
- is the exact equivalent.
- V1.7
- BOOST_VMD_IS_BEGIN_NUMBER(sequence,...) returns 1 if input
- begins with a number, else 0 if it does not.
- V1.8 equivalent
- BOOST_VMD_ELEM(0,sequence,BOOST_VMD_TYPE_NUMBER) returns the number found,
- otherwise emptiness if not found. You can use
- BOOST_PP_COMPL(BOOST_VMD_IS_EMPTY(BOOST_VMD_ELEM(0,sequence,BOOST_VMD_TYPE_NUMBER)))
- as the exact equivalent.
- [heading Array]
- V1.7
- BOOST_VMD_ARRAY(sequence) looked for an array at
- the beginning of a sequence and returned a 2-element tuple, where the first
- element is the array and the second tuple element is the rest of the sequence.
- If no array is found both tuple elements are empty.
- V1.8 equivalent
- BOOST_VMD_ELEM(0,sequence,BOOST_VMD_TYPE_ARRAY,BOOST_VMD_RETURN_AFTER)
- is the exact equivalent.
- V1.7
- BOOST_VMD_BEGIN_ARRAY(sequence) looked for an array at
- the beginning of a sequence and returned the array if found or emptiness
- if no array is found.
- V1.8 equivalent
- BOOST_VMD_ELEM(0,sequence,BOOST_VMD_TYPE_ARRAY)
- is the exact equivalent.
- V1.7
- BOOST_VMD_AFTER_ARRAY(sequence) looked for an array at the
- beginning of a sequence and returned the rest of the sequence or emptiness if
- no array is found.
- V1.8 equivalent
- BOOST_VMD_ELEM(0,sequence,BOOST_VMD_TYPE_ARRAY,BOOST_VMD_RETURN_ONLY_AFTER)
- is the exact equivalent.
- V1.7
- BOOST_VMD_IS_BEGIN_ARRAY(sequence,...) returns 1 if input
- begins with an array, else 0 if it does not.
- V1.8 equivalent
- BOOST_VMD_ELEM(0,sequence,BOOST_VMD_TYPE_ARRAY) returns the array found,
- otherwise emptiness if not found. You can use
- BOOST_PP_COMPL(BOOST_VMD_IS_EMPTY(BOOST_VMD_ELEM(0,sequence,BOOST_VMD_TYPE_ARRAY)))
- as the exact equivalent.
- [heading List]
- V1.7
- BOOST_VMD_LIST(sequence) looked for an list at
- the beginning of a sequence and returned a 2-element tuple, where the first
- element is the list and the second tuple element is the rest of the sequence.
- If no list is found both tuple elements are empty.
- V1.8 equivalent
- BOOST_VMD_ELEM(0,sequence,BOOST_VMD_TYPE_LIST,BOOST_VMD_RETURN_AFTER)
- is the exact equivalent.
- V1.7
- BOOST_VMD_BEGIN_LIST(sequence) looked for a list at
- the beginning of a sequence and returned the list if found or emptiness
- if no list is found.
- V1.8 equivalent
- BOOST_VMD_ELEM(0,sequence,BOOST_VMD_TYPE_LIST) is the exact equivalent.
- V1.7
- BOOST_VMD_AFTER_LIST(sequence) looked for an list at the
- beginning of a sequence and returned the rest of the sequence or emptiness if
- no list is found.
- V1.8 equivalent
- BOOST_VMD_ELEM(0,sequence,BOOST_VMD_TYPE_LIST,BOOST_VMD_RETURN_ONLY_AFTER)
- is the exact equivalent.
- V1.7
- BOOST_VMD_IS_BEGIN_LIST(sequence,...) returns 1 if input
- begins with an list, else 0 if it does not.
- V1.8 equivalent
- BOOST_VMD_ELEM(0,sequence,BOOST_VMD_TYPE_LIST) returns the list found,
- otherwise emptiness if not found. You can use
- BOOST_PP_COMPL(BOOST_VMD_IS_EMPTY(BOOST_VMD_ELEM(0,sequence,BOOST_VMD_TYPE_LIST)))
- as the exact equivalent.
- [heading Seq]
- V1.7
- BOOST_VMD_SEQ(sequence) looked for a seq at
- the beginning of a sequence and returned a 2-element tuple, where the first
- element is the seq and the second tuple element is the rest of the sequence.
- If no seq is found both tuple elements are empty.
- V1.8 equivalent
- BOOST_VMD_ELEM(0,sequence,BOOST_VMD_TYPE_SEQ,BOOST_VMD_RETURN_AFTER)
- is the exact equivalent.
- V1.7
- BOOST_VMD_BEGIN_SEQ(sequence) looked for a seq at
- the beginning of a sequence and returned the seq if found or emptiness
- if no seq is found.
- V1.8 equivalent
- BOOST_VMD_ELEM(0,sequence,BOOST_VMD_TYPE_SEQ) is the exact equivalent.
- V1.7
- BOOST_VMD_AFTER_SEQ(sequence) looked for an seq at the
- beginning of a sequence and returned the rest of the sequence or emptiness if
- no seq is found.
- V1.8 equivalent
- BOOST_VMD_ELEM(0,sequence,BOOST_VMD_TYPE_SEQ,BOOST_VMD_RETURN_ONLY_AFTER)
- is the exact equivalent.
- V1.7
- BOOST_VMD_IS_BEGIN_SEQ(sequence,...) returns 1 if input
- begins with an seq, else 0 if it does not.
- V1.8 equivalent
- BOOST_VMD_ELEM(0,sequence,BOOST_VMD_TYPE_SEQ) returns the seq found,
- otherwise emptiness if not found. You can use
- BOOST_PP_COMPL(BOOST_VMD_IS_EMPTY(BOOST_VMD_ELEM(0,sequence,BOOST_VMD_TYPE_SEQ)))
- as the exact equivalent.
- [heading Tuple]
- V1.7
- BOOST_VMD_TUPLE(sequence) looked for an tuple at
- the beginning of a sequence and returned a 2-element tuple, where the first
- element is the tuple and the second tuple element is the rest of the sequence.
- If no tuple is found both tuple elements are empty.
- V1.8 equivalent
- BOOST_VMD_ELEM(0,sequence,BOOST_VMD_TYPE_TUPLE,BOOST_VMD_RETURN_AFTER)
- is the exact equivalent.
- V1.7
- BOOST_VMD_BEGIN_TUPLE(sequence) looked for a tuple at
- the beginning of a sequence and returned the tuple if found or emptiness
- if no tuple is found.
- V1.8 equivalent
- BOOST_VMD_ELEM(0,sequence,BOOST_VMD_TYPE_TUPLE) is the exact equivalent.
- V1.7
- BOOST_VMD_AFTER_TUPLE(sequence) looked for an tuple at the
- beginning of a sequence and returned the rest of the sequence or emptiness if
- no tuple is found.
- V1.8 equivalent
- BOOST_VMD_ELEM(0,sequence,BOOST_VMD_TYPE_TUPLE,BOOST_VMD_RETURN_ONLY_AFTER)
- is the exact equivalent.
- V1.7
- BOOST_VMD_IS_BEGIN_TUPLE(sequence,...) returns 1 if input
- begins with an tuple, else 0 if it does not.
- V1.8 equivalent
- BOOST_VMD_ELEM(0,sequence,BOOST_VMD_TYPE_TUPLE) returns the tuple found,
- otherwise emptiness if not found. You can use
- BOOST_PP_COMPL(BOOST_VMD_IS_EMPTY(BOOST_VMD_ELEM(0,sequence,BOOST_VMD_TYPE_TUPLE)))
- as the exact equivalent.
- [endsect]
|