17 #if !defined(ON_PARSE_INC_) 33 bool ImpliedMultiplication()
const;
34 void SetImpliedMultiplication(
52 invalid_expression_error = 2,
55 divide_by_zero_error = 3,
69 bool PendingUnaryPlus()
const;
76 bool PendingUnaryMinus()
const;
82 bool PendingUnaryOperation()
const;
89 bool PendingImpliedMultiplication()
const;
96 unsigned int ParenthesesDepth()
const;
108 bool Number(
double x);
114 bool SimpleNumber(
double x);
168 bool LeftParenthesis();
174 bool RightParenthesis();
180 bool Evaluate(
double* value);
189 class ON_ArithmeticCalculatorImplementation* m_pCalc;
190 double m_inplace_buffer[127];
229 static unsigned int GetLengthUnitNameList(
230 size_t length_unit_list_capacity,
235 unsigned int locale_id,
236 ON::LengthUnitSystem length_unit_system,
245 static int CompareUnitSystemLocaleIdName(
255 static int CompareLocaleIdUnitSystemName(
260 unsigned int LocaleId()
const;
262 ON::LengthUnitSystem LengthUnit()
const;
269 bool LengthUnitIsSet()
const;
275 bool LengthUnitIsSetOrNone()
const;
282 bool LengthUnitAndNameAreSet()
const;
290 const wchar_t* LengthUnitName()
const;
292 bool LengthUnitNameIsEmpty()
const;
294 bool LengthUnitNameIsNotEmpty()
const;
303 bool LengthUnitNameIsSingular()
const;
312 bool LengthUnitNameIsPlural()
const;
316 unsigned int m_locale_id = 0;
317 ON::LengthUnitSystem m_length_unit_system = ON::LengthUnitSystem::None;
318 bool m_bNameIsSingular =
false;
319 bool m_bNameIsPlural =
false;
320 const wchar_t* m_name =
nullptr;
323 static int Internal_Compare(
324 unsigned int order_selector,
378 static unsigned int GetAngleUnitNameList(
379 size_t angle_unit_list_capacity,
384 unsigned int locale_id,
385 ON::AngleUnitSystem angle_unit_system,
394 static int CompareUnitSystemLocaleIdName(
404 static int CompareLocaleIdUnitSystemName(
409 unsigned int LocaleId()
const;
411 ON::AngleUnitSystem AngleUnit()
const;
418 bool AngleUnitIsSet()
const;
424 bool AngleUnitIsSetOrNone()
const;
431 bool AngleUnitAndNameAreSet()
const;
440 const wchar_t* AngleUnitName()
const;
442 bool AngleUnitNameIsEmpty()
const;
444 bool AngleUnitNameIsNotEmpty()
const;
453 bool AngleUnitNameIsSingular()
const;
462 bool AngleUnitNameIsPlural()
const;
466 unsigned int m_locale_id = 0;
467 ON::AngleUnitSystem m_angle_unit_system = ON::AngleUnitSystem::None;
468 bool m_bNameIsSingular =
false;
469 bool m_bNameIsPlural =
false;
470 const wchar_t* m_name =
nullptr;
473 static int Internal_Compare(
474 unsigned int order_selector,
498 max_number_str_count = 2000,
501 max_expression_str_count = 2147483645,
516 ON::AngleUnitSystem context_angle_unit_system,
517 unsigned int context_locale_id
520 ON::LengthUnitSystem context_length_unit_system,
521 ON::AngleUnitSystem context_angle_unit_system,
522 unsigned int context_locale_id
608 static const int Compare(
621 bool ParseSpaceAsWhiteSpace()
const;
627 bool ParseNoBreakSpaceAsWhiteSpace()
const;
633 bool ParseHorizontalTabAsWhiteSpace()
const;
639 bool ParseThinSpaceAsWhiteSpace()
const;
645 bool ParseNoBreakThinSpaceAsWhiteSpace()
const;
651 bool ParseLineFeedAsLeadingWhiteSpace()
const;
657 bool ParseFormFeedAsLeadingWhiteSpace()
const;
663 bool ParseCarriageReturnAsLeadingWhiteSpace()
const;
669 bool ParseVerticalTabAsLeadingWhiteSpace()
const;
675 bool ParseLineFeedAsTrailingWhiteSpace()
const;
681 bool ParseFormFeedAsTrailingWhiteSpace()
const;
687 bool ParseCarriageReturnAsTrailingWhiteSpace()
const;
693 bool ParseVerticalTabAsTrailingWhiteSpace()
const;
700 void SetParseSpaceAsWhiteSpace(
701 bool bParseSpaceAsWhiteSpace );
707 void SetParseNoBreakSpaceAsWhiteSpace(
708 bool bParseNoBreakSpaceAsWhiteSpace );
714 void SetParseHorizontalTabAsWhiteSpace(
715 bool bParseHorizontalTabAsWhiteSpace );
721 void SetParseThinSpaceAsWhiteSpace(
722 bool bParseThinSpaceAsWhiteSpace );
728 void SetParseNoBreakThinSpaceAsWhiteSpace(
729 bool bParseNoBreakThinSpaceAsWhiteSpace );
735 void SetParseLineFeedAsLeadingWhiteSpace(
736 bool bParseLineFeedAsLeadingWhiteSpace );
742 void SetParseFormFeedAsLeadingWhiteSpace(
743 bool bParseFormFeedAsLeadingWhiteSpace );
749 void SetParseCarriageReturnAsLeadingWhiteSpace(
750 bool bParseCarriageReturnAsLeadingWhiteSpace );
756 void SetParseVerticalTabAsLeadingWhiteSpace(
757 bool bParseVerticalTabAsLeadingWhiteSpace );
763 void SetParseLineFeedAsTrailingWhiteSpace(
764 bool bParseLineFeedAsTrailingWhiteSpacee );
770 void SetParseFormFeedAsTrailingWhiteSpace(
771 bool bParseParseFormFeedAsTrailingWhiteSpace );
777 void SetParseCarriageReturnAsTrailingWhiteSpace(
778 bool bParseParseCarriageReturnAsTrailingWhiteSpace );
784 void SetParseVerticalTabAsTrailingWhiteSpace(
785 bool bParseParseVerticalTabAsTrailingWhiteSpace );
794 bool ParseLeadingWhiteSpace()
const;
815 bool ParseArithmeticExpression()
const;
836 bool ParseMathFunctions()
const;
853 bool ParseExplicitFormulaExpression()
const;
861 bool ParseUnaryMinus()
const;
869 bool ParseUnaryPlus()
const;
878 bool ParseSignificandIntegerPart()
const;
887 bool ParseSignificandDecimalPoint()
const;
896 bool ParseSignificandFractionalPart()
const;
905 bool ParseSignificandDigitSeparators()
const;
921 bool ParseScientificENotation()
const;
938 bool ParseDAsExponentInScientificENotation()
const;
950 bool ParseFullStopAsDecimalPoint()
const;
966 bool ParseFullStopAsDigitSeparator()
const;
978 bool ParseCommaAsDecimalPoint()
const;
994 bool ParseCommaAsDigitSeparator()
const;
1009 bool ParseSpaceAsDigitSeparator()
const;
1024 bool ParseThinSpaceAsDigitSeparator()
const;
1039 bool ParseNoBreakSpaceAsDigitSeparator()
const;
1054 bool ParseNoBreakThinSpaceAsDigitSeparator()
const;
1071 bool ParseHyphenMinusAsNumberDash()
const;
1087 bool ParseHyphenAsNumberDash()
const;
1104 bool ParseNoBreakHyphenAsNumberDash()
const;
1121 bool ParseRationalNumber()
const;
1142 bool ParsePi()
const;
1157 bool ParseMultiplication()
const;
1172 bool ParseDivision()
const;
1187 bool ParseAddition()
const;
1202 bool ParseSubtraction()
const;
1218 bool ParsePairedParentheses()
const;
1236 bool ParseIntegerDashFraction()
const;
1252 bool ParseFeetInches()
const;
1269 bool ParseArcDegreesMinutesSeconds()
const;
1286 bool ParseWhiteSpaceBetweenValueAndUnitSystem()
const;
1302 bool ParseWhiteSpaceBetweenFeetAndInches()
const;
1321 bool ParseSurveyorsNotation()
const;
1335 unsigned int ContextLocaleId()
const;
1343 ON::LengthUnitSystem ContextLengthUnitSystem()
const;
1351 ON::AngleUnitSystem ContextAngleUnitSystem()
const;
1358 unsigned int PreferedLocaleId()
const;
1365 ON::AngleUnitSystem DefaultAngleUnitSystem()
const;
1373 bool IsLeadingWhiteSpace(ON__UINT32 c)
const;
1381 bool IsTrailingWhiteSpace(ON__UINT32 c)
const;
1389 bool IsInteriorWhiteSpace(ON__UINT32 c)
const;
1397 bool IsUnaryMinus(ON__UINT32 c)
const;
1405 bool IsUnaryPlus(ON__UINT32 c)
const;
1413 char IsDigit(ON__UINT32 c)
const;
1421 bool IsDigitSeparator(ON__UINT32 c)
const;
1429 bool IsDecimalPoint(ON__UINT32 c)
const;
1437 bool IsDecimalExponentSymbol(ON__UINT32 c)
const;
1445 bool IsGreekPi(ON__UINT32 c)
const;
1453 bool IsMultiplicationSymbol(ON__UINT32 c)
const;
1461 bool IsDivisionSymbol(ON__UINT32 c)
const;
1469 bool IsAdditionSymbol(ON__UINT32 c)
const;
1477 bool IsSubtractionSymbol(ON__UINT32 c)
const;
1485 bool IsLeftParenthesisSymbol(ON__UINT32 c)
const;
1493 bool IsRightParenthesisSymbol(ON__UINT32 c)
const;
1501 bool IsRationalNumberFractionBar(ON__UINT32 c)
const;
1510 bool IsNumberDash(ON__UINT32 c)
const;
1520 void SetParseLeadingWhiteSpace(
1521 bool bParseLeadingWhiteSpace
1532 void SetParseArithmeticExpression(
1533 bool bParseArithmeticExpression
1544 void SetParseMathFunctions(
1545 bool bParseMathFunctions
1556 void SetParseExplicitFormulaExpression(
1557 bool bParseExplicitFormulaExpression
1568 void SetParseUnaryMinus(
1569 bool bParseUnaryMinus
1580 void SetParseUnaryPlus(
1581 bool bParseUnaryPlus
1594 void SetParseSignificandIntegerPart(
1595 bool bParseSignificandIntegerPart
1608 void SetParseSignificandDecimalPoint(
1609 bool bParseSignificandDecimalPoint
1622 void SetParseSignificandFractionalPart(
1623 bool bParseSignificandFractionalPart
1635 void SetParseSignificandDigitSeparators(
1636 bool bParseSignificandDigitSeparators
1647 void SetParseDecimalPoint(
1648 bool bParseDecimalPoint
1660 void SetParseDAsExponentInScientificENotation(
1661 bool bParseDAsExponentInScientificENotation
1672 void SetParseScientificENotation(
1673 bool bParseScientificENotation
1676 void SetParseFullStopAsDecimalPoint(
bool bParse );
1677 void SetParseFullStopAsDigitSeparator(
bool bParse );
1678 void SetParseCommaAsDecimalPoint(
bool bParse );
1679 void SetParseCommaAsDigitSeparator(
bool bParse );
1680 void SetParseSpaceAsDigitSeparator(
bool bParse );
1681 void SetParseThinSpaceAsDigitSeparator(
bool bParse );
1682 void SetParseNoBreakSpaceAsDigitSeparator(
bool bParse );
1683 void SetParseNoBreakThinSpaceAsDigitSeparator(
bool bParse );
1684 void SetParseHyphenMinusAsNumberDash(
bool bParse );
1685 void SetParseHyphenAsNumberDash(
bool bParse );
1686 void SetParseNoBreakHyphenAsNumberDash(
bool bParse );
1697 void SetParseRationalNumber(
1698 bool bParseRationalNumber
1723 void SetParseMultiplication(
1724 bool bParseMultiplication
1735 void SetParseDivision(
1747 void SetParseAddition(
1759 void SetParseSubtraction(
1760 bool bParseSubtraction
1771 void SetParsePairedParentheses(
1772 bool bParsePairedParentheses
1784 void SetParseIntegerDashFraction(
1785 bool bParseIntegerDashFraction
1797 void SetParseFeetInches(
1798 bool bParseFeetInches
1811 void SetParseArcDegreesMinutesSeconds(
1812 bool bParseArcDegreesMinutesSeconds
1828 void SetParseWhiteSpaceBetweenValueAndUnitSystem(
1829 bool bParseWhiteSpaceBetweenValueAndUnitSystem
1843 void SetParseWhiteSpaceBetweenFeetAndInches(
1844 bool bParseWhiteSpaceBetweenFeetAndInches
1856 void SetParseSurveyorsNotation(
1857 bool bParseSurveyorsNotation
1881 void SetContextLocaleId(
1882 unsigned int context_locale_id
1897 void SetContextLengthUnitSystem(
1898 ON::LengthUnitSystem context_length_unit_system
1913 void SetContextAngleUnitSystem(
1914 ON::AngleUnitSystem context_angle_unit_system
1922 void SetPreferedLocaleId(
1923 unsigned int context_locale_id
1930 void SetDefaultAngleUnitSystem(
1931 ON::AngleUnitSystem context_angle_unit_system
1938 void SetAllToFalse();
1957 void SetAllExpressionSettingsToFalse();
1967 bool ParseError()
const;
1973 bool ParseDivideByZeroError()
const;
1980 bool ParseOverflowError()
const;
1987 bool ParseInvalidExpressionError()
const;
1989 void SetParseDivideByZeroError(
1990 bool bParseDivideByZeroError
1993 void SetParseOverflowError(
1994 bool bParseOverflowError
1997 void SetParseInvalidExpressionError(
1998 bool bParseInvalidExpressionError
2003 ON__UINT32 m_true_default_bits[2];
2004 ON__UINT32 m_false_default_bits[2];
2006 ON__UINT32 m_reserved_bits = 0;
2014 ON__UINT16 m_context_locale_id = 0;
2024 ON__UINT8 m_context_angle_unit_system = 0;
2036 ON__UINT8 m_context_length_unit_system = 0;
2038 ON__UINT64 m_reserved = 0;
2041 void Internal_DefaultCtor();
2180 int ON_ParseNumberExpression(
2244 int ON_ParseLengthUnitName(
2247 int prefered_locale_id,
2248 ON::LengthUnitSystem* length_unit_system
2252 int ON_ParseLengthUnitName(
2256 ON::LengthUnitSystem* length_unit_system
2304 int ON_ParseLengthExpression(
2308 double* length_value,
2310 ON::LengthUnitSystem* str_length_unit_system
2314 int ON_ParseLengthExpression(
2318 ON::LengthUnitSystem length_value_unit_system,
2319 double* length_value,
2321 ON::LengthUnitSystem* str_length_unit_system
2325 int ON_ParseLengthExpression(
2330 double* length_value,
2332 ON::LengthUnitSystem* str_length_unit_system
2336 int ON_ParseLengthExpression(
2339 ON::AngleUnitSystem default_str_angle_unit_system,
2340 ON::LengthUnitSystem length_value_unit_system,
2341 double* length_value
2345 int ON_ParseLengthExpression(
2348 ON::AngleUnitSystem default_str_angle_unit_system,
2350 double* length_value
2405 int ON_ParseAngleUnitName(
2408 int prefered_locale_id,
2409 ON::AngleUnitSystem* angle_unit_system
2413 int ON_ParseAngleUnitName(
2417 ON::AngleUnitSystem* angle_unit_system
2464 int ON_ParseAngleExpression(
2468 double* angle_value,
2470 ON::AngleUnitSystem* str_angle_unit_system
2474 int ON_ParseAngleExpression(
2478 const ON::AngleUnitSystem angle_value_unit_system,
2479 double* angle_value,
2481 ON::AngleUnitSystem* str_angle_unit_system
2517 int ON_ParseAngleRadiansExpression(
2520 ON::AngleUnitSystem default_str_angle_unit_system,
2521 double* angle_value_in_radians
2558 int ON_ParseAngleArcDegreesExpression(
2561 ON::AngleUnitSystem default_str_angle_unit_system,
2562 double* angle_value_in_arc_degrees
2607 int ON_ParsePointExpression(
2610 ON::AngleUnitSystem default_str_angle_unit_system,
2611 ON::LengthUnitSystem point_value_unit_system,
2616 int ON_ParsePointExpression(
2619 ON::AngleUnitSystem default_str_angle_unit_system,
2625 int ON_ParsePointExpression(
2629 ON::LengthUnitSystem point_value_unit_system,
2635 int ON_ParsePointExpression(
Definition: opennurbs_parse.h:176
Definition: opennurbs_parse.h:315
Definition: opennurbs_parse.h:20
ERROR_CONDITION
Definition: opennurbs_parse.h:43
Definition: opennurbs_string.h:3739
Definition: opennurbs_point.h:460
Definition: opennurbs_parse.h:455