annotate fuhtark_test/include/winapi/sql_1.h @ 1501:f40d9d814c08 default tip

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