VirtualBox

Changeset 105753 in vbox


Ignore:
Timestamp:
Aug 21, 2024 10:23:20 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]

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Runtime/common/script/scriptlex.cpp

    r105752 r105753  
    564564                                        PFNRTSCRIPTLEXDTOR pfnDtor, void *pvUser,
    565565                                        size_t cchBuf, PRTSTRCACHE phStrCacheId, PRTSTRCACHE phStrCacheStringLit,
    566                                         PCRTSCRIPTLEXCFG pCfg) RT_NO_THROW_DEF
     566                                        PCRTSCRIPTLEXCFG pCfg)
    567567{
    568568    AssertPtrReturn(phScriptLex, VERR_INVALID_POINTER);
     
    658658
    659659RTDECL(int) RTScriptLexCreateFromString(PRTSCRIPTLEX phScriptLex, const char *pszSrc, PRTSTRCACHE phStrCacheId,
    660                                         PRTSTRCACHE phStrCacheStringLit, PCRTSCRIPTLEXCFG pCfg) RT_NO_THROW_DEF
     660                                        PRTSTRCACHE phStrCacheStringLit, PCRTSCRIPTLEXCFG pCfg)
    661661{
    662662    return RTScriptLexCreateFromReader(phScriptLex, rtScriptLexReaderStr, NULL, (void *)pszSrc, 0,
     
    681681 * @callback_method_impl{FNRTSCRIPTLEXDTOR, Destructor for the file variant.}
    682682 */
    683 static DECLCALLBACK(void) rtScriptLexDtorFile(RTSCRIPTLEX hScriptLex, void *pvUser) RT_NO_THROW_DEF
     683static DECLCALLBACK(void) rtScriptLexDtorFile(RTSCRIPTLEX hScriptLex, void *pvUser)
    684684{
    685685    RT_NOREF(hScriptLex);
     
    691691
    692692RTDECL(int) RTScriptLexCreateFromFile(PRTSCRIPTLEX phScriptLex, const char *pszFilename, PRTSTRCACHE phStrCacheId,
    693                                       PRTSTRCACHE phStrCacheStringLit, PCRTSCRIPTLEXCFG pCfg) RT_NO_THROW_DEF
     693                                      PRTSTRCACHE phStrCacheStringLit, PCRTSCRIPTLEXCFG pCfg)
    694694{
    695695    RTFILE hFile;
     
    707707
    708708
    709 RTDECL(void) RTScriptLexDestroy(RTSCRIPTLEX hScriptLex) RT_NO_THROW_DEF
     709RTDECL(void) RTScriptLexDestroy(RTSCRIPTLEX hScriptLex)
    710710{
    711711    PRTSCRIPTLEXINT pThis = hScriptLex;
     
    727727
    728728
    729 RTDECL(int) RTScriptLexQueryToken(RTSCRIPTLEX hScriptLex, PCRTSCRIPTLEXTOKEN *ppToken) RT_NO_THROW_DEF
     729RTDECL(int) RTScriptLexQueryToken(RTSCRIPTLEX hScriptLex, PCRTSCRIPTLEXTOKEN *ppToken)
    730730{
    731731    PRTSCRIPTLEXINT pThis = hScriptLex;
     
    740740
    741741
    742 RTDECL(RTSCRIPTLEXTOKTYPE) RTScriptLexGetTokenType(RTSCRIPTLEX hScriptLex) RT_NO_THROW_DEF
     742RTDECL(RTSCRIPTLEXTOKTYPE) RTScriptLexGetTokenType(RTSCRIPTLEX hScriptLex)
    743743{
    744744    PRTSCRIPTLEXINT pThis = hScriptLex;
     
    752752
    753753
    754 RTDECL(RTSCRIPTLEXTOKTYPE) RTScriptLexPeekNextTokenType(RTSCRIPTLEX hScriptLex) RT_NO_THROW_DEF
     754RTDECL(RTSCRIPTLEXTOKTYPE) RTScriptLexPeekNextTokenType(RTSCRIPTLEX hScriptLex)
    755755{
    756756    PRTSCRIPTLEXINT pThis = hScriptLex;
     
    764764
    765765
    766 RTDECL(PCRTSCRIPTLEXTOKEN) RTScriptLexConsumeToken(RTSCRIPTLEX hScriptLex) RT_NO_THROW_DEF
     766RTDECL(PCRTSCRIPTLEXTOKEN) RTScriptLexConsumeToken(RTSCRIPTLEX hScriptLex)
    767767{
    768768    PRTSCRIPTLEXINT pThis = hScriptLex;
     
    792792
    793793
    794 RTDECL(char) RTScriptLexConsumeCh(RTSCRIPTLEX hScriptLex) RT_NO_THROW_DEF
     794RTDECL(char) RTScriptLexConsumeCh(RTSCRIPTLEX hScriptLex)
    795795{
    796796    return RTScriptLexConsumeChEx(hScriptLex, RTSCRIPT_LEX_CONV_F_DEFAULT);
     
    798798
    799799
    800 RTDECL(char) RTScriptLexConsumeChEx(RTSCRIPTLEX hScriptLex, uint32_t fFlags) RT_NO_THROW_DEF
     800RTDECL(char) RTScriptLexConsumeChEx(RTSCRIPTLEX hScriptLex, uint32_t fFlags)
    801801{
    802802    PRTSCRIPTLEXINT pThis = hScriptLex;
     
    812812
    813813
    814 RTDECL(char) RTScriptLexPeekCh(RTSCRIPTLEX hScriptLex, unsigned idx) RT_NO_THROW_DEF
     814RTDECL(char) RTScriptLexPeekCh(RTSCRIPTLEX hScriptLex, unsigned idx)
    815815{
    816816    return RTScriptLexPeekChEx(hScriptLex, idx, RTSCRIPT_LEX_CONV_F_DEFAULT);
     
    818818
    819819
    820 RTDECL(char) RTScriptLexPeekChEx(RTSCRIPTLEX hScriptLex, unsigned idx, uint32_t fFlags) RT_NO_THROW_DEF
     820RTDECL(char) RTScriptLexPeekChEx(RTSCRIPTLEX hScriptLex, unsigned idx, uint32_t fFlags)
    821821{
    822822    PRTSCRIPTLEXINT pThis = hScriptLex;
     
    842842
    843843
    844 RTDECL(char) RTScriptLexGetCh(RTSCRIPTLEX hScriptLex) RT_NO_THROW_DEF
     844RTDECL(char) RTScriptLexGetCh(RTSCRIPTLEX hScriptLex)
    845845{
    846846    return RTScriptLexPeekCh(hScriptLex, 0);
     
    848848
    849849
    850 RTDECL(char) RTScriptLexGetChEx(RTSCRIPTLEX hScriptLex, uint32_t fFlags) RT_NO_THROW_DEF
     850RTDECL(char) RTScriptLexGetChEx(RTSCRIPTLEX hScriptLex, uint32_t fFlags)
    851851{
    852852    return RTScriptLexPeekChEx(hScriptLex, 0, fFlags);
     
    854854
    855855
    856 RTDECL(void) RTScriptLexSkipWhitespace(RTSCRIPTLEX hScriptLex) RT_NO_THROW_DEF
     856RTDECL(void) RTScriptLexSkipWhitespace(RTSCRIPTLEX hScriptLex)
    857857{
    858858    PRTSCRIPTLEXINT pThis = hScriptLex;
     
    882882
    883883RTDECL(int) RTScriptLexScanNumber(RTSCRIPTLEX hScriptLex, uint8_t uBase, bool fAllowReal,
    884                                   PRTSCRIPTLEXTOKEN pTok) RT_NO_THROW_DEF
     884                                  PRTSCRIPTLEXTOKEN pTok)
    885885{
    886886    RT_NOREF(uBase, fAllowReal, pTok);
     
    943943
    944944RTDECL(int) RTScriptLexScanIdentifier(RTSCRIPTLEX hScriptLex, char ch,
    945                                       PRTSCRIPTLEXTOKEN pTok, void *pvUser) RT_NO_THROW_DEF
     945                                      PRTSCRIPTLEXTOKEN pTok, void *pvUser)
    946946{
    947947    PRTSCRIPTLEXINT pThis = hScriptLex;
     
    985985 * @param   idx                    At which position to add the character in the string.
    986986 */
    987 static int rtScriptLexScanStringLiteralChAdd(PRTSCRIPTLEXINT pThis, char ch, uint32_t idx) RT_NO_THROW_DEF
     987static int rtScriptLexScanStringLiteralChAdd(PRTSCRIPTLEXINT pThis, char ch, uint32_t idx)
    988988{
    989989    int rc = VINF_SUCCESS;
     
    10141014
    10151015RTDECL(int) RTScriptLexScanStringLiteralC(RTSCRIPTLEX hScriptLex, char ch,
    1016                                           PRTSCRIPTLEXTOKEN pTok, void *pvUser) RT_NO_THROW_DEF
     1016                                          PRTSCRIPTLEXTOKEN pTok, void *pvUser)
    10171017{
    10181018    RT_NOREF(ch, pvUser);
     
    11121112
    11131113RTDECL(int) RTScriptLexScanStringLiteralPascal(RTSCRIPTLEX hScriptLex, char ch,
    1114                                                PRTSCRIPTLEXTOKEN pTok, void *pvUser) RT_NO_THROW_DEF
     1114                                               PRTSCRIPTLEXTOKEN pTok, void *pvUser)
    11151115{
    11161116    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