Mercurial > games > semicongine
comparison fuhtark_test/include/winapi/sql_1.h @ 1500:91c8c3b7cbf0
add: futhark tests for generating vulkan api
| author | sam <sam@basx.dev> |
|---|---|
| date | Wed, 26 Nov 2025 21:36:48 +0700 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| 1499:1f58458b7ef7 | 1500:91c8c3b7cbf0 |
|---|---|
| 1 /** | |
| 2 * This file has no copyright assigned and is placed in the Public Domain. | |
| 3 * This file is part of the w64 mingw-runtime package. | |
| 4 * No warranty is given; refer to the file DISCLAIMER within this package. | |
| 5 */ | |
| 6 #ifndef _SQL_1_H_ | |
| 7 #define _SQL_1_H_ | |
| 8 | |
| 9 struct SQL_LEVEL_1_TOKEN { | |
| 10 enum { OP_EXPRESSION = 1,TOKEN_AND,TOKEN_OR,TOKEN_NOT }; | |
| 11 enum { IFUNC_NONE = 0,IFUNC_UPPER = 1,IFUNC_LOWER = 2 }; | |
| 12 int nTokenType; | |
| 13 enum { OP_EQUAL = 1,OP_NOT_EQUAL,OP_EQUALorGREATERTHAN,OP_EQUALorLESSTHAN,OP_LESSTHAN,OP_GREATERTHAN,OP_LIKE }; | |
| 14 BSTR pPropertyName; | |
| 15 int nOperator; | |
| 16 WINBOOL bConstIsStrNumeric; | |
| 17 VARIANT vConstValue; | |
| 18 BSTR pPropName2; | |
| 19 DWORD dwPropertyFunction; | |
| 20 DWORD dwConstFunction; | |
| 21 SQL_LEVEL_1_TOKEN(); | |
| 22 SQL_LEVEL_1_TOKEN(SQL_LEVEL_1_TOKEN&); | |
| 23 ~SQL_LEVEL_1_TOKEN(); | |
| 24 SQL_LEVEL_1_TOKEN& operator=(SQL_LEVEL_1_TOKEN &Src); | |
| 25 void Dump(FILE *); | |
| 26 }; | |
| 27 | |
| 28 struct SQL_LEVEL_1_RPN_EXPRESSION { | |
| 29 int nNumTokens; | |
| 30 int nCurSize; | |
| 31 SQL_LEVEL_1_TOKEN *pArrayOfTokens; | |
| 32 BSTR bsClassName; | |
| 33 int nNumberOfProperties; | |
| 34 int nCurPropSize; | |
| 35 BSTR *pbsRequestedPropertyNames; | |
| 36 SQL_LEVEL_1_RPN_EXPRESSION(); | |
| 37 ~SQL_LEVEL_1_RPN_EXPRESSION(); | |
| 38 void AddToken(SQL_LEVEL_1_TOKEN *pTok); | |
| 39 void AddToken(SQL_LEVEL_1_TOKEN &pTok); | |
| 40 void AddProperty(LPWSTR pProp); | |
| 41 void Dump(const char *pszTextFile); | |
| 42 }; | |
| 43 | |
| 44 class SQL1_Parser { | |
| 45 CGenLexer *m_pLexer; | |
| 46 int m_nLine; | |
| 47 wchar_t *m_pTokenText; | |
| 48 int m_nCurrentToken; | |
| 49 SQL_LEVEL_1_RPN_EXPRESSION *m_pExpression; | |
| 50 void Cleanup(); | |
| 51 void Init(CGenLexSource *pSrc); | |
| 52 VARIANT m_vTypedConst; | |
| 53 int m_nRelOp; | |
| 54 DWORD m_dwConstFunction; | |
| 55 DWORD m_dwPropFunction; | |
| 56 LPWSTR m_pIdent; | |
| 57 LPWSTR m_pPropComp; | |
| 58 WINBOOL m_bConstIsStrNumeric; | |
| 59 WINBOOL Next(); | |
| 60 int parse(); | |
| 61 int prop_list(); | |
| 62 int class_name(); | |
| 63 int opt_where(); | |
| 64 int expr(); | |
| 65 int property_name(); | |
| 66 int prop_list_2(); | |
| 67 int term(); | |
| 68 int expr2(); | |
| 69 int simple_expr(); | |
| 70 int term2(); | |
| 71 int leading_ident_expr(); | |
| 72 int finalize(); | |
| 73 int rel_operator(); | |
| 74 int equiv_operator(); | |
| 75 int comp_operator(); | |
| 76 int is_operator(); | |
| 77 int trailing_prop_expr(); | |
| 78 int trailing_prop_expr2(); | |
| 79 int trailing_or_null(); | |
| 80 int trailing_const_expr(); | |
| 81 int unknown_func_expr(); | |
| 82 int typed_constant(); | |
| 83 public: | |
| 84 enum { | |
| 85 SUCCESS,SYNTAX_ERROR,LEXICAL_ERROR,FAILED,BUFFER_TOO_SMALL | |
| 86 }; | |
| 87 SQL1_Parser(CGenLexSource *pSrc); | |
| 88 ~SQL1_Parser(); | |
| 89 int GetQueryClass(LPWSTR pBuf,int nBufSize); | |
| 90 int Parse(SQL_LEVEL_1_RPN_EXPRESSION **pOutput); | |
| 91 int CurrentLine() { return m_nLine; } | |
| 92 LPWSTR CurrentToken() { return m_pTokenText; } | |
| 93 void SetSource(CGenLexSource *pSrc); | |
| 94 }; | |
| 95 #endif |
