org.apache.poi.ss.formula

## Class FormulaParser

- java.lang.Object
- - org.apache.poi.ss.formula.FormulaParser

-     @Internal
      public final class FormulaParser
      extends java.lang.Object

  This class parses a formula string into a List of tokens in RPN order. Inspired by Lets Build a Compiler, by Jack Crenshaw BNF for the formula expression is : ::= [ ]* ::= [ ]* ::= | () | | ::= ([expression [, expression]*])

  For POI internal use only

- - ### Method Summary

    All Methods Static Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static Ptg[]` | `parse(java.lang.String formula, FormulaParsingWorkbook workbook, FormulaType formulaType, int sheetIndex)` Parse a formula into an array of tokens Side effect: creates name (`Workbook.createName()`) if formula contains unrecognized names (names are likely UDFs)
    `static Ptg[]` | `parse(java.lang.String formula, FormulaParsingWorkbook workbook, FormulaType formulaType, int sheetIndex, int rowIndex)` Parse a formula into an array of tokens Side effect: creates name (`Workbook.createName()`) if formula contains unrecognized names (names are likely UDFs)
    `static Area3DPxg` | `parseStructuredReference(java.lang.String tableText, FormulaParsingWorkbook workbook, int rowIndex)` Parse a structured reference.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Method Detail

    - #### parse

          public static Ptg[] parse(java.lang.String formula,
                                    FormulaParsingWorkbook workbook,
                                    FormulaType formulaType,
                                    int sheetIndex,
                                    int rowIndex)

      Parse a formula into an array of tokens Side effect: creates name (`Workbook.createName()`) if formula contains unrecognized names (names are likely UDFs)
      Parameters:
        `formula` - the formula to parse
        `workbook` - the parent workbook
        `formulaType` - the type of the formula
        `sheetIndex` - the 0-based index of the sheet this formula belongs to. The sheet index is required to resolve sheet-level names. `-1` means that the scope of the name will be ignored and the parser will match names only by name
        `rowIndex` - - the related cell's row index in 0-based form (-1 if the formula is not cell related) used to handle structured references that have the "#This Row" quantifier. Use rowIndex=-1 or `parseStructuredReference(String, FormulaParsingWorkbook, int)` if formula does not contain structured references.
      Returns:
        array of parsed tokens
      Throws:
        `FormulaParseException` - if the formula has incorrect syntax or is otherwise invalid

    - #### parse

          public static Ptg[] parse(java.lang.String formula,
                                    FormulaParsingWorkbook workbook,
                                    FormulaType formulaType,
                                    int sheetIndex)

      Parse a formula into an array of tokens Side effect: creates name (`Workbook.createName()`) if formula contains unrecognized names (names are likely UDFs)
      Parameters:
        `formula` - the formula to parse
        `workbook` - the parent workbook
        `formulaType` - the type of the formula
        `sheetIndex` - the 0-based index of the sheet this formula belongs to. The sheet index is required to resolve sheet-level names. `-1` means that the scope of the name will be ignored and the parser will match names only by name
      Returns:
        array of parsed tokens
      Throws:
        `FormulaParseException` - if the formula has incorrect syntax or is otherwise invalid

    - #### parseStructuredReference

          public static Area3DPxg parseStructuredReference(java.lang.String tableText,
                                                           FormulaParsingWorkbook workbook,
                                                           int rowIndex)

      Parse a structured reference. Converts the structured reference to the area that represent it.
      Parameters:
        `tableText` - - The structured reference text
        `workbook` - - the parent workbook
        `rowIndex` - - the 0-based cell's row index ( used to handle "#This Row" quantifiers )
      Returns:
        the area that being represented by the structured reference.

Copyright 2020 The Apache Software Foundation or its licensors, as applicable.