import sys, re

def merge_myanmar_lines(text):
    # Regex for Myanmar sentence end markers (။ and ၊)
    # If a line does not end with these, it might be a broken line
    lines = text.split('\n')
    merged = []
    buffer = ""
    
    for line in lines:
        line = line.strip()
        if not line:
            if buffer:
                merged.append(buffer)
                buffer = ""
            merged.append("")
            continue
            
        if line.startswith("## PAGE"):
            if buffer:
                merged.append(buffer)
                buffer = ""
            merged.append(line)
            continue

        if buffer:
            # Check if current line starts with a list marker or header
            if re.match(r'^[၀-၉၁-၉0-9]+\.', line) or line.startswith('=') or line.startswith('['):
                merged.append(buffer)
                buffer = line
            else:
                buffer += line
        else:
            buffer = line
            
        # If line ends with sentence markers or specific patterns, flush buffer
        if line.endswith("။") or line.endswith("”") or line.endswith("]"):
            merged.append(buffer)
            buffer = ""
            
    if buffer:
        merged.append(buffer)
        
    return '\n'.join(merged)

if __name__ == "__main__":
    if len(sys.argv) < 2:
        print("Usage: python3 merge-lines.py <input_file>")
        sys.exit(1)
    with open(sys.argv[1], 'r', encoding='utf-8') as f:
        content = f.read()
    print(merge_myanmar_lines(content))
