/** @file Header file for string function support library Copyright (c) 2020, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent **/ #ifndef _STRING_SUPPORT_LIB_H_ #define _STRING_SUPPORT_LIB_H_ #include /** Get next line start pointer. @param[in] Start The pointer for current line. @param[out] Length The UINT32 pointer to receive the length of current line. @retval The pointer for next line. NULL if no more line is available. **/ CHAR8 * EFIAPI GetNextLine ( IN CHAR8 *Start, OUT UINT32 *Length ); /** Trim leading white space for a line. @param[in] Line The pointer to the line buffer. @retval The pointer to the trimmed line. **/ CHAR8 * EFIAPI TrimLeft ( IN CHAR8 *Line ); /** Get next space for the start of a line. @param[in] LineStart The pointer to the start of the line buffer. @param[in] LineEnd The pointer to the end of the line buffer. @retval The pointer to the trimmed line. **/ CHAR8 * EFIAPI GetNextSpace ( IN CHAR8 *LineStart, IN CHAR8 *LineEnd ); /** Trim trailing white space for a line. @param[in] Line The pointer to the line buffer. @retval The pointer to the trimmed line. **/ CHAR8 * EFIAPI TrimRight ( IN CHAR8 *Line ); /** Check if a line starts with a known keyword. @param[in] Line The pointer to the line buffer. @param[in] Keyword The pointer to the keyword. @retval Length of the matched keyword. 0 if there is no match. **/ UINT32 EFIAPI MatchKeyWord ( IN CHAR8 *Line, IN CHAR8 *Keyword ); /** Check if a line matches varaible assignment syntax. @param[in] Line The pointer to the line buffer. @param[in] Variable The pointer to the variable name. @retval Length of the matched variable name. 0 if there is no match. **/ UINT32 EFIAPI MatchAssignment ( IN CHAR8 *Line, IN CHAR8 *Variable ); #endif