




import operator as op

def    UpperCAmelCase_				( __UpperCAmelCase		:      str				)   ->					Any:
      SCREAMING_SNAKE_CASE_      		=     []
      SCREAMING_SNAKE_CASE_      		=     lambda __UpperCAmelCase     ,     __UpperCAmelCase				: int(x / y				)  # noqa: E731 integer division operation
      SCREAMING_SNAKE_CASE_      		=     {
          '^': op.pow,
          '*': op.mul,
          '/': div,
          '+': op.add,
          '-': op.sub,
      }  # operators & their respective operation

      # print table header
      print('Symbol'.center(8				)     ,     'Action'.center(12				)     ,     'Stack'     ,     sep=' | '				)
      print('-' * (30 + len(__UpperCAmelCase				))				)

      for x in post_fix:
            if x.isdigit():  # if x in digit
                  stack.append(__UpperCAmelCase				)  # append x to stack
                  # output in tabular format
                  print(x.rjust(8				)     ,     ('push(' + x + ')').ljust(12				)     ,     ','.join(__UpperCAmelCase				)     ,     sep=' | '				)
            else:
                  SCREAMING_SNAKE_CASE_      		=     stack.pop()  # pop stack
                  # output in tabular format
                  print(''.rjust(8				)     ,     ('pop(' + b + ')').ljust(12				)     ,     ','.join(__UpperCAmelCase				)     ,     sep=' | '				)

                  SCREAMING_SNAKE_CASE_      		=     stack.pop()  # pop stack
                  # output in tabular format
                  print(''.rjust(8				)     ,     ('pop(' + a + ')').ljust(12				)     ,     ','.join(__UpperCAmelCase				)     ,     sep=' | '				)

                  stack.append(
                      str(opr[x](int(__UpperCAmelCase				)     ,     int(__UpperCAmelCase				)				)				)				)  # evaluate the 2 values popped from stack & push result to stack
                  # output in tabular format
                  print(
                      x.rjust(8				)     ,     ('push(' + a + x + b + ')').ljust(12				)     ,     ','.join(__UpperCAmelCase				)     ,     sep=' | '     ,     )

      return int(stack[0]				)


if __name__ == "__main__":
   lowerCamelCase__					:  Tuple      							=				input('\n\nEnter a Postfix Equation (space separated) = ').split(' ')
   print('\n\tResult = ', solve(Postfix))




import json
import os
import unittest

from transformers.models.ctrl.tokenization_ctrl import VOCAB_FILES_NAMES, CTRLTokenizer

from ...test_tokenization_common import TokenizerTesterMixin



class        lowerCAmelCase__					(  _lowerCamelCase ,				unittest.TestCase       ):
				A_   :     int								=     CTRLTokenizer
				A_   :     List[str]								=     False
				A_   :     str								=     False


				def __UpperCamelCase						(							self      :  Any       )		->     Tuple:
											super().setUp()

											# Adapted from Sennrich et al. 2015 and https://github.com/rsennrich/subword-nmt
											A      						=    ['adapt', 're@@', 'a@@', 'apt', 'c@@', 't', '<unk>']
											A      						=    dict(zip(__UpperCamelCase						, range(len(__UpperCamelCase       )       )       )       )
											A      						=    ['#version: 0.2', 'a p', 'ap t</w>', 'r e', 'a d', 'ad apt</w>', '']
											A      						=    {'unk_token': '<unk>'}

											A      						=    os.path.join(self.tmpdirname						, VOCAB_FILES_NAMES['vocab_file']       )
											A      						=    os.path.join(self.tmpdirname						, VOCAB_FILES_NAMES['merges_file']       )
											with open(self.vocab_file						, 'w'						, encoding='utf-8'       ) as fp:
																		fp.write(json.dumps(__UpperCamelCase       ) + '\n'       )
											with open(self.merges_file						, 'w'						, encoding='utf-8'       ) as fp:
																		fp.write('\n'.join(__UpperCamelCase       )       )


				def __UpperCamelCase						(							self      :  Optional[Any]						, **__UpperCamelCase      :  List[str]       )		->     List[Any]:
											kwargs.update(self.special_tokens_map       )
											return CTRLTokenizer.from_pretrained(self.tmpdirname						, **__UpperCamelCase       )


				def __UpperCamelCase						(							self      :  int						, __UpperCamelCase      :  Optional[int]       )		->     Optional[Any]:
											A      						=    'adapt react readapt apt'
											A      						=    'adapt react readapt apt'
											return input_text, output_text


				def __UpperCamelCase						(							self      :  List[Any]       )		->     Optional[int]:
											A      						=    CTRLTokenizer(self.vocab_file						, self.merges_file						, **self.special_tokens_map       )
											A      						=    'adapt react readapt apt'
											A      						=    'adapt re@@ a@@ c@@ t re@@ adapt apt'.split()
											A      						=    tokenizer.tokenize(__UpperCamelCase       )
											self.assertListEqual(__UpperCamelCase						, __UpperCamelCase       )

											A      						=    tokens + [tokenizer.unk_token]

											A      						=    [0, 1, 2, 4, 5, 1, 0, 3, 6]
											self.assertListEqual(tokenizer.convert_tokens_to_ids(__UpperCamelCase       )						, __UpperCamelCase       )