source: proto/s2k/trunk/framework/src/toolchain/b2k/lang/paramBuiltin/idisa/IDISABuiltins2CPP.java @ 4023

Last change on this file since 4023 was 4023, checked in by ksherdy, 5 years ago

Restructured b2k package.

File size: 2.2 KB
Line 
1/*
2 * Builder Pattern - 'Concrete Builder'
3 *
4 * @author Ken Herdy <ksherdy at sfu dot ca>
5 * @author Meng Lin <linmengl at sfu dot ca>
6 */
7
8package toolchain.b2k.lang.paramBuiltin.idisa;
9
10public class IDISABuiltins2CPP extends AbstractIDISABuiltinTranslator{ 
11
12        @Override
13        public String makeIDISAFunctionCall0(String operationBaseName, String operationClassName, String fieldWidth, String ...arguments) {             
14               
15                String csv = getArgCsv(arguments);
16                return String.format("%s<%s>::%s(%s)", operationClassName, fieldWidth, operationBaseName, csv);
17        }
18       
19        @Override
20        public String makeIDISAFunctionCall1(String operationBaseName,
21                        String operationClassName, String fieldWidth, String... arguments) {
22               
23                String csv = getArgCsv(arguments, 1);
24                return String.format("%s<%s>::%s<%s>(%s)", operationClassName, fieldWidth, operationBaseName, _firstArg, csv);
25        }
26
27        @Override
28        public String makeIDISAFunctionCall2(String operationBaseName,
29                        String operationClassName, String fieldWidth, String... arguments) {
30               
31                String csv = getArgCsv(arguments);
32                return String.format("%s_%s(%s)", operationClassName, operationBaseName, csv);
33        }
34
35        @Override
36        public String makeIDISAFunctionCall3(String operationBaseName,
37                        String operationClassName, String fieldWidth, String... arguments) {
38               
39                String csv = getArgCsv(arguments);
40                return String.format("%s::%s(%s)", operationClassName, operationBaseName, csv);
41        }
42
43        @Override
44        public String makeIDISAFunctionCall4(String operationBaseName,
45                        String operationClassName, String fieldWidth, String... arguments) {
46                 
47                String csv = getArgCsv(arguments, 1);
48                return String.format("%s::%s<%s>(%s)", operationClassName, operationBaseName, _firstArg, csv);
49        }
50
51        @Override
52        public String makeIDISAFunctionCallStore(String operationBaseName,
53                        String operationClassName, String fieldWidth, String[] arguments) {
54               
55                String csv = getArgCsv(arguments, 1);
56                return String.format("%s::%s(%s)", operationClassName, operationBaseName, _firstArg + ", &" + csv);
57        }
58
59        @Override
60        public String makeIDISAFunctionCallLoad(String operationBaseName,
61                        String operationClassName, String fieldWidth, String[] arguments) {
62               
63                String csv = getArgCsv(arguments, 1);
64                return String.format("%s::%s(%s)", operationClassName, operationBaseName, "&" + _firstArg);
65        }
66}
Note: See TracBrowser for help on using the repository browser.