Telethon/parser/tl_parser.py
Lonami 75a648f438 Several fixes to authenticator, added more unit tests
Some fixes include, in more detail:
- Using little over big endianess in some parts
- Flagging all the constructor numbers as unsigned
- Fixed bugs with factorizer
- Implemented TLSharp's RSA
2016-09-03 10:54:58 +02:00

31 lines
1.0 KiB
Python
Executable File

import re
from tl.tlobject import TLObject
class TLParser:
"""Class used to parse .tl files"""
@staticmethod
def parse_file(file_path):
"""This method yields TLObjects from a given .tl file"""
with open(file_path, encoding='utf-8') as file:
# Start by assuming that the next found line won't be a function (and will hence be a type)
is_function = False
# Read all the lines from the .tl file
for line in file:
line = line.strip()
# Ensure that the line is not a comment
if line and not line.startswith('//'):
# Check whether the line is a type change (types ⋄ functions) or not
match = re.match('---(\w+)---', line)
if match:
following_types = match.group(1)
is_function = following_types == 'functions'
else:
yield TLObject.from_tl(line, is_function)