@@ -29,7 +29,6 @@ Date: June 2006
29
29
#include < util/unicode.h>
30
30
#include < util/version.h>
31
31
32
- #include < ansi-c/ansi_c_language.h>
33
32
#include < ansi-c/ansi_c_entry_point.h>
34
33
35
34
#include < goto-programs/goto_convert.h>
@@ -417,21 +416,6 @@ bool compilet::parse(
417
416
const std::string &file_name,
418
417
language_filest &language_files)
419
418
{
420
- if (file_name==" -" )
421
- return parse_stdin ();
422
-
423
- #ifdef _MSC_VER
424
- std::ifstream infile (widen (file_name));
425
- #else
426
- std::ifstream infile (file_name);
427
- #endif
428
-
429
- if (!infile)
430
- {
431
- error () << " failed to open input file `" << file_name << " '" << eom;
432
- return true ;
433
- }
434
-
435
419
std::unique_ptr<languaget> languagep;
436
420
437
421
// Using '-x', the type of a file can be overridden;
@@ -444,7 +428,7 @@ bool compilet::parse(
444
428
else
445
429
languagep = get_language_from_mode (ID_C);
446
430
}
447
- else
431
+ else if (file_name != " - " )
448
432
languagep=get_language_from_filename (file_name);
449
433
450
434
if (languagep==nullptr )
@@ -455,6 +439,21 @@ bool compilet::parse(
455
439
456
440
languagep->set_message_handler (get_message_handler ());
457
441
442
+ if (file_name == " -" )
443
+ return parse_stdin (*languagep);
444
+
445
+ #ifdef _MSC_VER
446
+ std::ifstream infile (widen (file_name));
447
+ #else
448
+ std::ifstream infile (file_name);
449
+ #endif
450
+
451
+ if (!infile)
452
+ {
453
+ error () << " failed to open input file `" << file_name << " '" << eom;
454
+ return true ;
455
+ }
456
+
458
457
language_filet &lf=language_files.add_file (file_name);
459
458
lf.language =std::move (languagep);
460
459
@@ -496,13 +495,10 @@ bool compilet::parse(
496
495
}
497
496
498
497
// / parses a source file (low-level parsing)
498
+ // / \param language: source language processor
499
499
// / \return true on error, false otherwise
500
- bool compilet::parse_stdin ()
500
+ bool compilet::parse_stdin (languaget &language )
501
501
{
502
- ansi_c_languaget language;
503
-
504
- language.set_message_handler (get_message_handler ());
505
-
506
502
statistics () << " Parsing: (stdin)" << eom;
507
503
508
504
if (mode==PREPROCESS_ONLY)
0 commit comments