Loading...
Searching...
No Matches
expr.hpp
Go to the documentation of this file.
1
2#pragma once
3
4#include "core/ast/args.hpp"
6
7struct exprTest;
8
9namespace by {
10
36 class _nout expr: public node {
37 public:
45 class _nout exprType: public ntype {
46 BY(ME(exprType, ntype))
47
48 public:
49 nbool isImpli(const type& to) const override;
50
51 using super::asImpli;
52 str asImpli(const node& from, const type& to) const override;
53 };
54
55 BY(ADT(expr, node, exprType))
56 friend struct ::exprTest;
57
58 public:
59 using super::subs;
60 scope& subs() override;
61
62 using super::isImpli;
63 nbool isImpli(const type& to) const override;
64
65 using super::prioritize;
70 priorType prioritize(const args& a) const override;
71
72 const src& getSrc() const override;
73
74 private:
75 void _setSrc(const src& newSrc) override;
76
77 protected:
78 tstr<src> _src;
79 point _pos;
80 };
81} // namespace by
Function or object evaluation arguments.
Definition args.hpp:22
Type information for expression nodes
Definition expr.hpp:45
Base class for all expressions.
Definition expr.hpp:36
priorType prioritize(const args &a) const override
Base class for all AST nodes in the byeol language.
Definition node.hpp:195
represents native c++ type system for byeol language
Definition ntype.hpp:33
Source location information.
Definition src.hpp:15
Definition tnarr.hpp:9
priorType
Definition tpriorities.hpp:10
to Top