Merge to XFA: Kill CFX_Object.
[pdfium.git] / xfa / src / fxfa / src / fm2js / xfa_fmparse.h
1 // Copyright 2014 PDFium Authors. All rights reserved.\r
2 // Use of this source code is governed by a BSD-style license that can be\r
3 // found in the LICENSE file.\r
4 \r
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com\r
6 \r
7 #ifndef _XFA_FM_PARSE_H\r
8 #define _XFA_FM_PARSE_H\r
9 class CXFA_FMParse\r
10 {\r
11 public:\r
12     CXFA_FMParse();\r
13     ~CXFA_FMParse();\r
14     FX_INT32 Init(FX_WSTR wsFormcalc, CXFA_FMErrorInfo *pErrorInfo);\r
15     void NextToken();\r
16     void Check(XFA_FM_TOKEN op);\r
17     void Error(FX_DWORD lineNum, XFA_FM_ERRMSG msg, ...);\r
18     CFX_PtrArray * ParseTopExpression();\r
19     CXFA_FMExpression *ParseFunction();\r
20     CXFA_FMExpression *ParseExpression();\r
21     CXFA_FMExpression *ParseVarExpression();\r
22     CXFA_FMExpression *ParseExpExpression();\r
23     CXFA_FMExpression *ParseBlockExpression();\r
24     CXFA_FMExpression *ParseIfExpression();\r
25     CXFA_FMExpression *ParseWhileExpression();\r
26     CXFA_FMExpression *ParseForExpression();\r
27     CXFA_FMExpression *ParseForeachExpression();\r
28     CXFA_FMExpression *ParseDoExpression();\r
29     CXFA_FMSimpleExpression *ParseParenExpression();\r
30     CXFA_FMSimpleExpression *ParseSimpleExpression();\r
31     CXFA_FMSimpleExpression *ParseSubassignmentInForExpression();\r
32     CXFA_FMSimpleExpression *ParseLogicalOrExpression();\r
33     CXFA_FMSimpleExpression *ParseLogicalAndExpression();\r
34     CXFA_FMSimpleExpression *ParseEqualityExpression();\r
35     CXFA_FMSimpleExpression *ParseRelationalExpression();\r
36     CXFA_FMSimpleExpression *ParseAddtiveExpression();\r
37     CXFA_FMSimpleExpression *ParseMultiplicativeExpression();\r
38     CXFA_FMSimpleExpression *ParseUnaryExpression();\r
39     CXFA_FMSimpleExpression *ParsePrimaryExpression();\r
40     CXFA_FMSimpleExpression *ParsePostExpression(CXFA_FMSimpleExpression *e);\r
41     CXFA_FMSimpleExpression *ParseIndexExpression();\r
42 private:\r
43     FX_LPCWSTR m_pScript;\r
44     FX_STRSIZE m_uLength;\r
45     CXFA_FMLexer        *m_lexer;\r
46     CXFA_FMToken        *m_pToken;\r
47     CXFA_FMErrorInfo *m_pErrorInfo;\r
48 };\r
49 #endif\r