xaizek / zograscope (License: AGPLv3 only) (since 2018-12-07)
Mainly a syntax-aware diff that also provides a number of additional tools.
<root> / src / ts / lua / TSLuaSType.hpp (0da78280fbe46236fe1574a6a1dad16070314d73) (2,198B) (mode 100644) [raw]
// Copyright (C) 2021 xaizek <xaizek@posteo.net>
//
// This file is part of zograscope.
//
// zograscope is free software: you can redistribute it and/or modify
// it under the terms of version 3 of the GNU Affero General Public License as
// published by the Free Software Foundation.
//
// zograscope is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with zograscope.  If not, see <http://www.gnu.org/licenses/>.

#ifndef ZOGRASCOPE_TS_LUA_TSLUASTYPE_HPP_
#define ZOGRASCOPE_TS_LUA_TSLUASTYPE_HPP_

#include <cstdint>

enum class SType : std::uint8_t;

// The namespace is necessary to avoid ODR violation for negation operator.
namespace tslua {

// Lua-specific STypes.
enum class TSLuaSType : std::uint8_t
{
    None,

    Separator,
    Comment,

    Program,

    BinaryExpression,
    ConditionExpression,
    Expression,
    ParenthesizedExpression,
    PrefixExpression,
    UnaryExpression,

    Table,
    ExpressionList,

    Statement,
    CallStatement,
    DoStatement,
    EmptyStatement,
    ForGenericStatement,
    ForNumericStatement,
    FunctionDefinitionStatement,
    GotoStatement,
    LabelStatement,
    LocalFunctionDefinitionStatement,
    RepeatStatement,
    ReturnStatement,
    WhileStatement,

    IfStatement,
    ElseClause,
    ElseifClause,

    FunctionBody,
    FunctionDefinition,
    FunctionDefinitionSignature,

    LocalVariableDeclaration,
    Variable,
    VariableAssignment,
    VariableList,

    Parameter,
    ParameterList,

    ArgumentList,
    Attribute,
    Block,
    Call,
    Field,
    FieldList,

    BinaryOperator,
    UnaryOperator,
};

// "Conversion operator": TSLuaSType -> SType.
constexpr SType
operator+(TSLuaSType stype)
{
    return static_cast<SType>(stype);
}

// "Conversion operator": SType -> TSLuaSType.
constexpr TSLuaSType
operator-(SType stype)
{
    return static_cast<TSLuaSType>(stype);
}

}

#endif // ZOGRASCOPE_TS_LUA_TSLUASTYPE_HPP_
Hints

Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"

Clone this repository using HTTP(S):
git clone https://code.reversed.top/user/xaizek/zograscope

Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@code.reversed.top/user/xaizek/zograscope

You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a pull request:
... clone the repository ...
... make some changes and some commits ...
git push origin master