Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Roblox
GitHub Repository: Roblox/luau
Path: blob/master/Analysis/include/Luau/ControlFlow.h
2727 views
1
// This file is part of the Luau programming language and is licensed under MIT License; see LICENSE.txt for details
2
#pragma once
3
4
#include <memory>
5
6
namespace Luau
7
{
8
9
struct Scope;
10
using ScopePtr = std::shared_ptr<Scope>;
11
12
enum class ControlFlow
13
{
14
None = 0b00001,
15
Returns = 0b00010,
16
Throws = 0b00100,
17
Breaks = 0b01000,
18
Continues = 0b10000,
19
};
20
21
inline ControlFlow operator&(ControlFlow a, ControlFlow b)
22
{
23
return ControlFlow(int(a) & int(b));
24
}
25
26
inline ControlFlow operator|(ControlFlow a, ControlFlow b)
27
{
28
return ControlFlow(int(a) | int(b));
29
}
30
31
inline bool matches(ControlFlow a, ControlFlow b)
32
{
33
return (a & b) != ControlFlow(0);
34
}
35
36
} // namespace Luau
37
38