'How python prioritizes instruction while parsing?

I'm studying over parsing with python. I have user-defined instructions. So I have to specify precedence of them. I find an example here is the link I don't understand what they do in here

precedence = (
    ('left','PLUS','MINUS'),
    ('left','TIMES','DIVIDE'),
    ('right','UMINUS'),
)

how python prioritizes them? and also those too

def p_statement_assign(t):
    'statement : NAME EQUALS expression'
    names[t[1]] = t[3]

def p_statement_expr(t):
    'statement : expression'
    print(t[1])

What does it mean to write 'statement : expression' in quotation marks? How python understand and make sense of them?

I'm adding my instruction too. I will use them for drawing something in my program

F n -> go on n step
R n -> turn right n degree
L n -> Repeat the parentheses n times 
COLOR f -> f: line color
PEN n -> line thickness

enter image description here



Solution 1:[1]

These instructions are read by ply and any Python function/class/module can have these strings write at the beginning of them called docstring and you can use __doc__ attribute to retrieve them. Ply cleverly uses them as annotations to define the parsing rules. The rule can be interpreted as such: statement: NAME EQUALS expression means if there is a token stream that matches the sequence first with NAME, then EQUALS sign and finally an expression, it will be reduced to a statement.

The same is for precedence variable, which is also read by ply and ply uses this variable to define precedence rule.

I recommend you read the ply documentation before using it as you need to know the basics about tokenizing and parsing before you can use a compiler construction tool like ply.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 whilrun