الگوریتم محوطه تعویض خط
الگوریتم با جزئیات

/* This implementation does not implement composite functions, functions with variable number of arguments, and unary operators. */ while there are tokens to be read: read a token if the token is: - a number: put it into the output queue - a function: push it onto the operator stack - an operator o1: while ( there is an operator o2 other than the left parenthesis at the top of the operator stack, and (o2 has greater precedence than o1 or they have the same precedence and o1 is left-associative) ): pop o2 from the operator stack into the output queue push o1 onto the operator stack - a left parenthesis (i.e. "("): push it onto the operator stack - a right parenthesis (i.e. ")"): while the operator at the top of the operator stack is not a left parenthesis: {assert the operator stack is not empty} /* If the stack runs out without finding a left parenthesis, then there are mismatched parentheses. */ pop the operator from the operator stack into the output queue {assert there is a left parenthesis at the top of the operator stack} pop the left parenthesis from the operator stack and discard it if there is a function token at the top of the operator stack, then: pop the function from the operator stack into the output queue /* After the while loop, pop the remaining items from the operator stack into the output queue. */ while there are tokens on the operator stack: /* If the operator token on the top of the stack is a parenthesis, then there are mismatched parentheses. */ {assert the operator on top of the stack is not a (left) parenthesis} pop the operator from the operator stack onto the output queue/* This implementation does not implement composite functions, functions with variable number of arguments, and unary operators. */

while there are tokens to be read:
    read a token
    if the token is:
    - a number:
        put it into the output queue
    - a function:
        push it onto the operator stack 
    - an operator o1:
        while (
            there is an operator o2 other than the left parenthesis at the top
            of the operator stack, and (o2 has greater precedence than o1
            or they have the same precedence and o1 is left-associative)
        ):
            pop o2 from the operator stack into the output queue
        push o1 onto the operator stack
    - a left parenthesis (i.e. "("):
        push it onto the operator stack
    - a right parenthesis (i.e. ")"):
        while the operator at the top of the operator stack is not a left parenthesis:
            {assert the operator stack is not empty}
            /* If the stack runs out without finding a left parenthesis, then there are mismatched parentheses. */
            pop the operator from the operator stack into the output queue
        {assert there is a left parenthesis at the top of the operator stack}
        pop the left parenthesis from the operator stack and discard it
        if there is a function token at the top of the operator stack, then:
            pop the function from the operator stack into the output queue
/* After the while loop, pop the remaining items from the operator stack into the output queue. */
while there are tokens on the operator stack:
    /* If the operator token on the top of the stack is a parenthesis, then there are mismatched parentheses. */
    {assert the operator on top of the stack is not a (left) parenthesis}
    pop the operator from the operator stack onto the output queue
برای تحلیل پیچیدگی زمان اجرای این الگوریتم، فقط باید توجه داشت که هر نشانه دقیقا یک بار خوانده می شود، هر عدد، تابع یا عملگر دقیقا یک بار چاپ می شود و هر تابع، عملگر یا پرانتز دقیقا یک بار وارد پشته می شود و یک بار از پشته خارج می شود - بنابراین، در بیشترین حالت هم تعداد ثابتی از عملیات به ازای هر نشانه (token) اجرا می شود، و بنابراین زمان اجرا O( n ) است - از نظر اندازه ورودی خطی است.
الگوریتم محوطه تعویض خط همچنین می تواند برای تولید نماد پیشوند (که به عنوان نماد لهستانی نیز شناخته می شود) به کار برود. برای این کار، کافی است از انتهای رشته ای از نشانه ها که باید تجزیه شوند، شروع کنیم و در حین حرکت به سمت عقب، صف خروجی را معکوس کنیم (بنابراین صف خروجی به یک پشته خروجی تبدیل می شود) و پرانتز چپ و راست را برگردانیم (با توجه به اینکه یک پرانتز چپ فعلی باید خارج شود تا زمانی که یک پرانتز راست فعلی پیدا شود). و در آخر شرط شرکت پذیری را به راست تغییر دهیم.