source: icGREP/icgrep-devel/icgrep/pablo/arithmetic.h @ 5217

Last change on this file since 5217 was 5217, checked in by nmedfort, 2 years ago

Merged PabloFunction? and PabloKernel? classes. Updated projects where necessary.

File size: 1.0 KB
Line 
1#ifndef ARITHMETIC_H
2#define ARITHMETIC_H
3
4#include <pablo/pabloAST.h>
5
6namespace pablo {
7
8class Add : public Statement {
9    friend class PabloBlock;
10public:
11    static inline bool classof(const PabloAST * e) {
12        return e->getClassTypeId() == ClassTypeId::Add;
13    }
14    static inline bool classof(const void *) {
15        return false;
16    }
17    virtual ~Add() { }
18protected:
19    Add(Type * const type, PabloAST * expr1, PabloAST * expr2, const String * name)
20    : Statement(ClassTypeId::And, type, {expr1, expr2}, name)
21    {
22
23    }
24};
25
26class Subtract : public Statement {
27    friend class PabloBlock;
28public:
29    static inline bool classof(const PabloAST * e) {
30        return e->getClassTypeId() == ClassTypeId::Subtract;
31    }
32    static inline bool classof(const void *) {
33        return false;
34    }
35    virtual ~Subtract() { }
36protected:
37    Subtract(Type * const type, PabloAST * expr1, PabloAST * expr2, const String * name)
38    : Statement(ClassTypeId::And, type, {expr1, expr2}, name)
39    {
40
41    }
42};
43
44
45}
46
47#endif // ARITHMETIC_H
Note: See TracBrowser for help on using the repository browser.