<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
3
gwU:                 @   s4   G d d de ZG dd deZG dd de ZdS )c               @   s&   e Zd ZdZdZdddZd	d
 ZdS )Coordz Coordinates of a syntactic element. Consists of:
            - File name
            - Line number
            - (optional) column number, for the Lexer
    filelinecolumn__weakref__Nc             C   s   || _ || _|| _d S )N)r   r   r   )selfr   r   r    r   /usr/lib/python3.6/plyparser.py__init__   s    zCoord.__init__c             C   s(   d| j | jf }| jr$|d| j 7 }|S )Nz%s:%sz:%s)r   r   r   )r   strr   r   r   __str__   s     zCoord.__str__)r   r   r   r   )N)__name__
__module____qualname____doc__	__slots__r	   r   r   r   r   r   r      s   
r   c               @   s   e Zd ZdS )
ParseErrorN)r   r   r   r   r   r   r   r      s    r   c               @   s&   e Zd Zdd ZdddZdd ZdS )		PLYParserc             C   s<   |d }dd }d||f |_ d| |_t| j|j| dS )z Given a rule name, creates an optional ply.yacc rule
            for it. The name of the optional rule is
            <rulename>_opt
        Z_optc             S   s   |d |d< d S )N       r   )r   pr   r   r   optrule)   s    z+PLYParser._create_opt_rule.<locals>.optrulez%s : empty
| %szp_%sN)r   r   setattr	__class__)r   ZrulenameZoptnamer   r   r   r   _create_opt_rule"   s
    
zPLYParser._create_opt_ruleNc             C   s   t | jj||dS )N)r   r   r   )r   Zclexfilename)r   linenor   r   r   r   _coord0   s    zPLYParser._coordc             C   s   t d||f d S )Nz%s: %s)r   )r   msgZcoordr   r   r   _parse_error6   s    zPLYParser._parse_error)N)r   r   r   r   r   r   r   r   r   r   r   !   s   
r   N)objectr   	Exceptionr   r   r   r   r   r   <module>   s   