src/script/ast.cpp

Thu, 29 Mar 2018 12:09:05 +0300

author
Teemu Piippo <teemu@hecknology.net>
date
Thu, 29 Mar 2018 12:09:05 +0300
branch
scripting
changeset 1359
3e7ee6114624
parent 925
2f316b57b508
permissions
-rw-r--r--

Branch close

925
2f316b57b508 - added/corrected license headers
Teemu Piippo <crimsondusk64@gmail.com>
parents: 924
diff changeset
1 /*
2f316b57b508 - added/corrected license headers
Teemu Piippo <crimsondusk64@gmail.com>
parents: 924
diff changeset
2 * LDForge: LDraw parts authoring CAD
2f316b57b508 - added/corrected license headers
Teemu Piippo <crimsondusk64@gmail.com>
parents: 924
diff changeset
3 * Copyright (C) 2015 Teemu Piippo
2f316b57b508 - added/corrected license headers
Teemu Piippo <crimsondusk64@gmail.com>
parents: 924
diff changeset
4 *
2f316b57b508 - added/corrected license headers
Teemu Piippo <crimsondusk64@gmail.com>
parents: 924
diff changeset
5 * This program is free software: you can redistribute it and/or modify
2f316b57b508 - added/corrected license headers
Teemu Piippo <crimsondusk64@gmail.com>
parents: 924
diff changeset
6 * it under the terms of the GNU General Public License as published by
2f316b57b508 - added/corrected license headers
Teemu Piippo <crimsondusk64@gmail.com>
parents: 924
diff changeset
7 * the Free Software Foundation, either version 3 of the License, or
2f316b57b508 - added/corrected license headers
Teemu Piippo <crimsondusk64@gmail.com>
parents: 924
diff changeset
8 * (at your option) any later version.
2f316b57b508 - added/corrected license headers
Teemu Piippo <crimsondusk64@gmail.com>
parents: 924
diff changeset
9 *
2f316b57b508 - added/corrected license headers
Teemu Piippo <crimsondusk64@gmail.com>
parents: 924
diff changeset
10 * This program is distributed in the hope that it will be useful,
2f316b57b508 - added/corrected license headers
Teemu Piippo <crimsondusk64@gmail.com>
parents: 924
diff changeset
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
2f316b57b508 - added/corrected license headers
Teemu Piippo <crimsondusk64@gmail.com>
parents: 924
diff changeset
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2f316b57b508 - added/corrected license headers
Teemu Piippo <crimsondusk64@gmail.com>
parents: 924
diff changeset
13 * GNU General Public License for more details.
2f316b57b508 - added/corrected license headers
Teemu Piippo <crimsondusk64@gmail.com>
parents: 924
diff changeset
14 *
2f316b57b508 - added/corrected license headers
Teemu Piippo <crimsondusk64@gmail.com>
parents: 924
diff changeset
15 * You should have received a copy of the GNU General Public License
2f316b57b508 - added/corrected license headers
Teemu Piippo <crimsondusk64@gmail.com>
parents: 924
diff changeset
16 * along with this program. If not, see <http://www.gnu.org/licenses/>.
2f316b57b508 - added/corrected license headers
Teemu Piippo <crimsondusk64@gmail.com>
parents: 924
diff changeset
17 */
2f316b57b508 - added/corrected license headers
Teemu Piippo <crimsondusk64@gmail.com>
parents: 924
diff changeset
18
921
e2e9f594de66 - commit work done on scripting
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff changeset
19 #include "ast.h"
e2e9f594de66 - commit work done on scripting
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff changeset
20
924
d1ac217c9165 - ast: added root and macro nodes and processing of them
Teemu Piippo <crimsondusk64@gmail.com>
parents: 921
diff changeset
21 Script::Ast::BaseNode::BaseNode (NodePointer parent, NodeType type) :
d1ac217c9165 - ast: added root and macro nodes and processing of them
Teemu Piippo <crimsondusk64@gmail.com>
parents: 921
diff changeset
22 m_parent (parent),
d1ac217c9165 - ast: added root and macro nodes and processing of them
Teemu Piippo <crimsondusk64@gmail.com>
parents: 921
diff changeset
23 m_type (type)
d1ac217c9165 - ast: added root and macro nodes and processing of them
Teemu Piippo <crimsondusk64@gmail.com>
parents: 921
diff changeset
24 {
d1ac217c9165 - ast: added root and macro nodes and processing of them
Teemu Piippo <crimsondusk64@gmail.com>
parents: 921
diff changeset
25 }
d1ac217c9165 - ast: added root and macro nodes and processing of them
Teemu Piippo <crimsondusk64@gmail.com>
parents: 921
diff changeset
26
d1ac217c9165 - ast: added root and macro nodes and processing of them
Teemu Piippo <crimsondusk64@gmail.com>
parents: 921
diff changeset
27 Script::Ast::BaseNode::~BaseNode() {}
d1ac217c9165 - ast: added root and macro nodes and processing of them
Teemu Piippo <crimsondusk64@gmail.com>
parents: 921
diff changeset
28
d1ac217c9165 - ast: added root and macro nodes and processing of them
Teemu Piippo <crimsondusk64@gmail.com>
parents: 921
diff changeset
29 void Script::Ast::BaseNode::dump()
921
e2e9f594de66 - commit work done on scripting
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff changeset
30 {
924
d1ac217c9165 - ast: added root and macro nodes and processing of them
Teemu Piippo <crimsondusk64@gmail.com>
parents: 921
diff changeset
31 static QString tabs;
921
e2e9f594de66 - commit work done on scripting
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff changeset
32
924
d1ac217c9165 - ast: added root and macro nodes and processing of them
Teemu Piippo <crimsondusk64@gmail.com>
parents: 921
diff changeset
33 if (children().isEmpty())
d1ac217c9165 - ast: added root and macro nodes and processing of them
Teemu Piippo <crimsondusk64@gmail.com>
parents: 921
diff changeset
34 {
d1ac217c9165 - ast: added root and macro nodes and processing of them
Teemu Piippo <crimsondusk64@gmail.com>
parents: 921
diff changeset
35 print (tabs + describe() + "\n");
d1ac217c9165 - ast: added root and macro nodes and processing of them
Teemu Piippo <crimsondusk64@gmail.com>
parents: 921
diff changeset
36 }
d1ac217c9165 - ast: added root and macro nodes and processing of them
Teemu Piippo <crimsondusk64@gmail.com>
parents: 921
diff changeset
37 else
d1ac217c9165 - ast: added root and macro nodes and processing of them
Teemu Piippo <crimsondusk64@gmail.com>
parents: 921
diff changeset
38 {
d1ac217c9165 - ast: added root and macro nodes and processing of them
Teemu Piippo <crimsondusk64@gmail.com>
parents: 921
diff changeset
39 print (tabs + describe() + ":\n");
d1ac217c9165 - ast: added root and macro nodes and processing of them
Teemu Piippo <crimsondusk64@gmail.com>
parents: 921
diff changeset
40
d1ac217c9165 - ast: added root and macro nodes and processing of them
Teemu Piippo <crimsondusk64@gmail.com>
parents: 921
diff changeset
41 for (NodePointer child : children())
d1ac217c9165 - ast: added root and macro nodes and processing of them
Teemu Piippo <crimsondusk64@gmail.com>
parents: 921
diff changeset
42 {
d1ac217c9165 - ast: added root and macro nodes and processing of them
Teemu Piippo <crimsondusk64@gmail.com>
parents: 921
diff changeset
43 tabs += '\t';
d1ac217c9165 - ast: added root and macro nodes and processing of them
Teemu Piippo <crimsondusk64@gmail.com>
parents: 921
diff changeset
44 child->dump();
d1ac217c9165 - ast: added root and macro nodes and processing of them
Teemu Piippo <crimsondusk64@gmail.com>
parents: 921
diff changeset
45 tabs.chop(1);
d1ac217c9165 - ast: added root and macro nodes and processing of them
Teemu Piippo <crimsondusk64@gmail.com>
parents: 921
diff changeset
46 }
d1ac217c9165 - ast: added root and macro nodes and processing of them
Teemu Piippo <crimsondusk64@gmail.com>
parents: 921
diff changeset
47 }
921
e2e9f594de66 - commit work done on scripting
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff changeset
48 }
924
d1ac217c9165 - ast: added root and macro nodes and processing of them
Teemu Piippo <crimsondusk64@gmail.com>
parents: 921
diff changeset
49
d1ac217c9165 - ast: added root and macro nodes and processing of them
Teemu Piippo <crimsondusk64@gmail.com>
parents: 921
diff changeset
50 QString Script::Ast::RootNode::describe() const
d1ac217c9165 - ast: added root and macro nodes and processing of them
Teemu Piippo <crimsondusk64@gmail.com>
parents: 921
diff changeset
51 {
d1ac217c9165 - ast: added root and macro nodes and processing of them
Teemu Piippo <crimsondusk64@gmail.com>
parents: 921
diff changeset
52 return "root";
d1ac217c9165 - ast: added root and macro nodes and processing of them
Teemu Piippo <crimsondusk64@gmail.com>
parents: 921
diff changeset
53 }
d1ac217c9165 - ast: added root and macro nodes and processing of them
Teemu Piippo <crimsondusk64@gmail.com>
parents: 921
diff changeset
54
d1ac217c9165 - ast: added root and macro nodes and processing of them
Teemu Piippo <crimsondusk64@gmail.com>
parents: 921
diff changeset
55 QString Script::Ast::MacroNode::describe() const
d1ac217c9165 - ast: added root and macro nodes and processing of them
Teemu Piippo <crimsondusk64@gmail.com>
parents: 921
diff changeset
56 {
d1ac217c9165 - ast: added root and macro nodes and processing of them
Teemu Piippo <crimsondusk64@gmail.com>
parents: 921
diff changeset
57 return format ("macro (%1)", m_macroName);
d1ac217c9165 - ast: added root and macro nodes and processing of them
Teemu Piippo <crimsondusk64@gmail.com>
parents: 921
diff changeset
58 }

mercurial