Exemplo n.º 1
0
void interpret(struct interpreter_context *context, const char *cmd)
{
    struct tokenizer scanner;
    struct parser_context parser;
    init_tokenizer(&scanner, cmd);
    tokenize(&scanner);
    init_parser(&parser, scanner.token_list);
    struct ast_node *n = parse(&parser);
    interpret_node(context, n);
    uninit_parser(&parser);
    uninit_tokenizer(&scanner);
}
Exemplo n.º 2
0
int main(
    int     argc,
    char ** argv)
{
    char *tmp;
    char *profile_pathname = 0;
    BOOLEAN using_stdin = false;
    exit_values_ty exit_status;

#if defined (HAVE_SETLOCALE)
    setlocale(LC_ALL, "");
#endif
    bindtextdomain(PACKAGE, LOCALEDIR);
    textdomain(PACKAGE);

#if defined (_WIN32) && !defined (__CYGWIN__)
    /* wildcard expansion of commandline arguments, see wildexp.c */

    extern void wildexp(int *argc, char ***argv);

    wildexp(&argc, &argv);
#endif /* defined (_WIN32) && !defined (__CYGWIN__) */

#ifdef DEBUG
    if (debug)
    {
        debug_init();
    }
#endif

    /* 'size_t', 'wchar_t' and 'ptrdiff_t' are guarenteed to be
     * available in ANSI C.
     *
     * These pointers will be freed in cleanup_user_specials().
     */
    tmp = xmalloc(7);
    memcpy(tmp, "size_t", 7);
    addkey(tmp, rw_decl);
    tmp = xmalloc(8);
    memcpy(tmp, "wchar_t", 8);
    addkey(tmp, rw_decl);
    tmp = xmalloc(10);
    memcpy(tmp, "ptrdiff_t", 10);
    addkey(tmp, rw_decl);

    init_parser ();
    initialize_backups ();
    exit_status = total_success;

    input_files = 0;
    in_file_names = (char **) xmalloc(max_input_files * sizeof (char *));

    set_defaults();

    profile_pathname = handle_profile(argc, argv);

    exit_status = process_args(argc, argv, &using_stdin);

    if (exit_status == total_success)
    {
        if (settings.verbose && profile_pathname)
        {
            fprintf (stderr, _("Read profile %s\n"), profile_pathname);
        }

        set_defaults_after();

        exit_status = indent_all(using_stdin);
    }

    if (profile_pathname)
        xfree(profile_pathname);
    xfree(in_file_names);
    uninit_parser();
    cleanup_user_specials();
    return exit_status;
}