VirtualBox

Changeset 105752 in vbox


Ignore:
Timestamp:
Aug 21, 2024 10:14:13 AM (6 months ago)
Author:
vboxsync
Message:

Runtime/script: Add a simple lexer API to turn a stream of characters into tokens for a defined configuration, bugref:10394 [build fix]

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/iprt/script.h

    r105746 r105752  
    2828#define ___iprt_script_h
    2929
     30#include <iprt/cdefs.h>
    3031#include <iprt/types.h>
    3132#include <iprt/strcache.h>
     
    227228 * @param   pvUser        Opaque user data.
    228229 */
    229 typedef DECLCALLBACK(int) FNRTSCRIPTLEXPROD(RTSCRIPTLEX hScriptLex, char ch, PRTSCRIPTLEXTOKEN pToken, void *pvUser);
     230typedef DECLCALLBACKTYPE(int, FNRTSCRIPTLEXPROD,(RTSCRIPTLEX hScriptLex, char ch, PRTSCRIPTLEXTOKEN pToken, void *pvUser));
    230231/** Pointer to a production rule callback. */
    231232typedef FNRTSCRIPTLEXPROD *PFNRTSCRIPTLEXPROD;
     
    318319 * @param   pvUser          Opaque user data passed when creating the lexer.
    319320 */
    320 typedef DECLCALLBACK(int) FNRTSCRIPTLEXRDR(RTSCRIPTLEX hScriptLex, size_t offBuf, char *pchBuf, size_t cchBuf,
    321                                            size_t *pcchRead, void *pvUser);
     321typedef DECLCALLBACKTYPE(int, FNRTSCRIPTLEXRDR, (RTSCRIPTLEX hScriptLex, size_t offBuf, char *pchBuf, size_t cchBuf,
     322                                                 size_t *pcchRead, void *pvUser));
    322323/** Pointer to a lexer reader callback. */
    323324typedef FNRTSCRIPTLEXRDR *PFNRTSCRIPTLEXRDR;
     
    331332 * @param   pvUser          Opaque user data passed when creating the lexer.
    332333 */
    333 typedef DECLCALLBACK(void) FNRTSCRIPTLEXDTOR(RTSCRIPTLEX hScriptLex, void *pvUser);
     334typedef DECLCALLBACKTYPE(void, FNRTSCRIPTLEXDTOR,(RTSCRIPTLEX hScriptLex, void *pvUser));
    334335/** Pointer to a lexer destructor callback. */
    335336typedef FNRTSCRIPTLEXDTOR *PFNRTSCRIPTLEXDTOR;
     
    556557 *       flag for the first character.
    557558 */
    558 RTDECL(DECLCALLBACK(int)) RTScriptLexScanIdentifier(RTSCRIPTLEX hScriptLex, char ch,
    559                                                     PRTSCRIPTLEXTOKEN pTok, void *pvUser);
     559RTDECL(int) RTScriptLexScanIdentifier(RTSCRIPTLEX hScriptLex, char ch, PRTSCRIPTLEXTOKEN pTok, void *pvUser);
    560560
    561561
     
    573573 *       cache on success.
    574574 */
    575 RTDECL(DECLCALLBACK(int)) RTScriptLexScanStringLiteralC(RTSCRIPTLEX hScriptLex, char ch,
    576                                                         PRTSCRIPTLEXTOKEN pTok, void *pvUser);
     575RTDECL(int) RTScriptLexScanStringLiteralC(RTSCRIPTLEX hScriptLex, char ch, PRTSCRIPTLEXTOKEN pTok, void *pvUser);
    577576
    578577
     
    591590 *       cache on success.
    592591 */
    593 RTDECL(DECLCALLBACK(int)) RTScriptLexScanStringLiteralPascal(RTSCRIPTLEX hScriptLex, char ch,
    594                                                              PRTSCRIPTLEXTOKEN pTok, void *pvUser);
     592RTDECL(int) RTScriptLexScanStringLiteralPascal(RTSCRIPTLEX hScriptLex, char ch, PRTSCRIPTLEXTOKEN pTok, void *pvUser);
    595593
    596594/** @} */
  • trunk/src/VBox/Runtime/common/script/scriptlex.cpp

    r105750 r105752  
    921921        {
    922922            if (pTok->Type.Number.enmType == RTSCRIPTLEXTOKNUMTYPE_INTEGER)
    923                 pTok->Type.Number.Type.i64 = -u64;
     923                pTok->Type.Number.Type.i64 = -(int64_t)u64;
    924924            else
    925925                pTok->Type.Number.Type.u64 = u64;
     
    939939        ch = RTScriptLexConsumeCh(hScriptLex);
    940940    }
    941 
    942     return VINF_SUCCESS;
    943 }
    944 
    945 
    946 RTDECL(DECLCALLBACK(int)) RTScriptLexScanIdentifier(RTSCRIPTLEX hScriptLex, char ch,
    947                                                     PRTSCRIPTLEXTOKEN pTok, void *pvUser) RT_NO_THROW_DEF
     941}
     942
     943
     944RTDECL(int) RTScriptLexScanIdentifier(RTSCRIPTLEX hScriptLex, char ch,
     945                                      PRTSCRIPTLEXTOKEN pTok, void *pvUser) RT_NO_THROW_DEF
    948946{
    949947    PRTSCRIPTLEXINT pThis = hScriptLex;
     
    10151013
    10161014
    1017 RTDECL(DECLCALLBACK(int)) RTScriptLexScanStringLiteralC(RTSCRIPTLEX hScriptLex, char ch,
    1018                                                         PRTSCRIPTLEXTOKEN pTok, void *pvUser) RT_NO_THROW_DEF
     1015RTDECL(int) RTScriptLexScanStringLiteralC(RTSCRIPTLEX hScriptLex, char ch,
     1016                                          PRTSCRIPTLEXTOKEN pTok, void *pvUser) RT_NO_THROW_DEF
    10191017{
    10201018    RT_NOREF(ch, pvUser);
     
    11131111
    11141112
    1115 RTDECL(DECLCALLBACK(int)) RTScriptLexScanStringLiteralPascal(RTSCRIPTLEX hScriptLex, char ch,
    1116                                                              PRTSCRIPTLEXTOKEN pTok, void *pvUser) RT_NO_THROW_DEF
     1113RTDECL(int) RTScriptLexScanStringLiteralPascal(RTSCRIPTLEX hScriptLex, char ch,
     1114                                               PRTSCRIPTLEXTOKEN pTok, void *pvUser) RT_NO_THROW_DEF
    11171115{
    11181116    RT_NOREF(ch, pvUser);
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette