summaryrefslogtreecommitdiff
path: root/protocols/Telegram/tgl/tl-parser/tl-parser.h
diff options
context:
space:
mode:
Diffstat (limited to 'protocols/Telegram/tgl/tl-parser/tl-parser.h')
-rw-r--r--protocols/Telegram/tgl/tl-parser/tl-parser.h221
1 files changed, 0 insertions, 221 deletions
diff --git a/protocols/Telegram/tgl/tl-parser/tl-parser.h b/protocols/Telegram/tgl/tl-parser/tl-parser.h
deleted file mode 100644
index 7eb7524787..0000000000
--- a/protocols/Telegram/tgl/tl-parser/tl-parser.h
+++ /dev/null
@@ -1,221 +0,0 @@
-/*
- This file is part of tgl-libary/tlc
-
- Tgl-library/tlc is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 2 of the License, or
- (at your option) any later version.
-
- Tgl-library/tlc 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 General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this tgl-library/tlc. If not, see <http://www.gnu.org/licenses/>.
-
- Copyright Vitaly Valtman 2014
-
- It is derivative work of VK/KittenPHP-DB-Engine (https://github.com/vk-com/kphp-kdb/)
- Copyright 2012-2013 Vkontakte Ltd
- 2012-2013 Vitaliy Valtman
-
-*/
-
-#ifndef __TL_PARSER_NEW_H__
-#define __TL_PARSER_NEW_H__
-#if defined(WIN32) || defined(_WIN32)
-#define lrand48() rand()
-#define _PRINTF_INT64_ "I64"
-#if defined(_MSC_VER) && _MSC_VER >= 1400
-#define read _read
-#define write _write
-#define close _close
-#define lseek _lseek
-#define strdup _strdup
-#define __attribute__(x)
-#endif
-#else
-#define _PRINTF_INT64_ "ll"
-#endif
-
-enum lex_type {
- lex_error,
- lex_char,
- lex_triple_minus,
- lex_uc_ident,
- lex_lc_ident,
- lex_eof,
- lex_final,
- lex_new,
- lex_none,
- lex_num,
- lex_empty
-};
-
-
-struct curlex {
- char *ptr;
- int len;
- enum lex_type type;
- int flags;
-};
-
-struct parse {
- char *text;
- int pos;
- int len;
- int line;
- int line_pos;
- struct curlex lex;
-};
-
-
-enum tree_type {
- type_tl_program,
- type_fun_declarations,
- type_constr_declarations,
- type_declaration,
- type_combinator_decl,
- type_equals,
- type_partial_app_decl,
- type_final_decl,
- type_full_combinator_id,
- type_opt_args,
- type_args,
- type_args1,
- type_args2,
- type_args3,
- type_args4,
- type_boxed_type_ident,
- type_subexpr,
- type_partial_comb_app_decl,
- type_partial_type_app_decl,
- type_final_new,
- type_final_final,
- type_final_empty,
-// type_type,
- type_var_ident,
- type_var_ident_opt,
- type_multiplicity,
- type_type_term,
- type_term,
- type_percent,
- type_result_type,
- type_expr,
- type_nat_term,
- type_combinator_id,
- type_nat_const,
- type_type_ident,
- type_builtin_combinator_decl,
- type_exclam,
- type_optional_arg_def
-};
-
-struct tree {
- char *text;
- int len;
- enum tree_type type;
- int lex_line;
- int lex_line_pos;
- int flags;
- int size;
- int nc;
- struct tree **c;
-};
-
-
-#define TL_ACT(x) (x == act_var ? "act_var" : x == act_field ? "act_field" : x == act_plus ? "act_plus" : x == act_type ? "act_type" : x == act_nat_const ? "act_nat_const" : x == act_array ? "act_array" : x == act_question_mark ? "act_question_mark" : \
- x == act_union ? "act_union" : x == act_arg ? "act_arg" : x == act_opt_field ? "act_opt_field" : "act_unknown")
-
-#define TL_TYPE(x) (x == type_num ? "type_num" : x == type_type ? "type_type" : x == type_list_item ? "type_list_item" : x == type_list ? "type_list" : x == type_num_value ? "type_num_value" : "type_unknown")
-enum combinator_tree_action {
- act_var,
- act_field,
- act_plus,
- act_type,
- act_nat_const,
- act_array,
- act_question_mark,
- act_union,
- act_arg,
- act_opt_field
-};
-
-enum combinator_tree_type {
- type_num,
- type_num_value,
- type_type,
- type_list_item,
- type_list
-};
-
-struct tl_combinator_tree {
- enum combinator_tree_action act;
- struct tl_combinator_tree *left, *right;
- char *name;
- void *data;
- long long flags;
- enum combinator_tree_type type;
- int type_len;
- long long type_flags;
-};
-
-
-struct tl_program {
- int types_num;
- int functions_num;
- int constructors_num;
- struct tl_type **types;
- struct tl_function **functions;
-// struct tl_constuctor **constructors;
-};
-
-struct tl_type {
- char *id;
- char *print_id;
- char *real_id;
- unsigned name;
- int flags;
-
- int params_num;
- long long params_types;
-
- int constructors_num;
- struct tl_constructor **constructors;
-};
-
-struct tl_constructor {
- char *id;
- char *print_id;
- char *real_id;
- unsigned name;
- struct tl_type *type;
-
- struct tl_combinator_tree *left;
- struct tl_combinator_tree *right;
-};
-
-struct tl_var {
- char *id;
- struct tl_combinator_tree *ptr;
- int type;
- int flags;
-};
-
-struct parse *tl_init_parse_file (const char *fname);
-struct tree *tl_parse_lex (struct parse *P);
-void tl_print_parse_error (void);
-struct tl_program *tl_parse (struct tree *T);
-
-void write_types (int f);
-
-#define FLAG_BARE 1
-#define FLAG_OPT_VAR (1 << 17)
-#define FLAG_EXCL (1 << 18)
-#define FLAG_OPT_FIELD (1 << 20)
-#define FLAG_IS_VAR (1 << 21)
-#define FLAG_DEFAULT_CONSTRUCTOR (1 << 25)
-#define FLAG_EMPTY (1 << 10)
-
-#endif