示例#1
0
def test_compile():
    code = compile('x = raiz(0 ou 1)', '<string>', 'exec')

    D = {}
    exec(code, D)
    assert D['x'] == 1

    D = {}
    exec(code, D)
    assert D['x'] == 1
示例#2
0
def main(argv=None):
    """
    Executes the main pytuga program in the console.
    """

    if len(sys.argv) <= 1:
        return start_ipytuga()

    # Process arguments
    parser = argparse.ArgumentParser(description='Executa código Pytuguês')
    parser.add_argument(
        'arquivo', help='nome do arquivo a ser executado')
    parser.add_argument(
        '--mostre-python', '-P',
        help='mostra conversão do arquivo para Python na tela',
        action='store_const', const=True)
    parser.add_argument(
        '--python', '-p',
        metavar='ARQUIVO',
        help='salva conversão para Python no caminho especificado')
    parser.add_argument(
        '--versão', '-v',
        help='mostra a versão do interpretador de pytuguês',
        action='version', version='Pytuga %s' % version)
    # parser.add_argument('--warning', '-w', action='store_const',
    #                   help='ativa avisos de compatibilidade com o python')
    args = parser.parse_args(argv)

    # Process errors
    if not os.path.exists(args.arquivo):
        raise SystemExit('O arquivo %s não existe!' % args.arquivo)
    if os.path.splitext(args.arquivo)[1] != '.pytg':
        print('Aviso: Pytuga deve processar apenas arquivos .pytg!')

    # Process file
    if args.mostre_python:
        with open(args.arquivo) as F:
            print(to_python(F.read()))
    elif args.python:
        with open(args.arquivo) as source:
            data = to_python(source.read())
        with open(args.python, 'w') as dest:
            dest.write(data)
    else:
        with open(args.arquivo) as F:
            data = F.read()
        pytuga.init()
        code = pytuga.compile(data, args.arquivo, 'exec')
        pytuga.exec(code, {})
示例#3
0
 def syntax_check(self):
     pytuga.compile(self.source, 'main.pytg', 'exec')
示例#4
0
def ast_parse(self, source, filename='<unknown>', symbol='exec'):
    flags = self.flags | PyCF_ONLY_AST
    return pytuga.compile(source, filename, symbol, flags, 1)