vhdlpp: line feed character (LF).
This commit is contained in:
parent
054dfdf0cf
commit
b08ae23d0d
|
|
@ -1675,7 +1675,11 @@ mode_opt : mode {$$ = $1;} | {$$ = PORT_NONE;} ;
|
||||||
|
|
||||||
name /* IEEE 1076-2008 P8.1 */
|
name /* IEEE 1076-2008 P8.1 */
|
||||||
: IDENTIFIER /* simple_name (IEEE 1076-2008 P8.2) */
|
: IDENTIFIER /* simple_name (IEEE 1076-2008 P8.2) */
|
||||||
{ Expression*tmp = new ExpName(lex_strings.make($1));
|
{ Expression*tmp;
|
||||||
|
/* Check if the IDENTIFIER is one of CHARACTER enums (LF, CR, etc.) */
|
||||||
|
tmp = parse_char_enums($1);
|
||||||
|
if(!tmp)
|
||||||
|
tmp = new ExpName(lex_strings.make($1));
|
||||||
FILE_NAME(tmp, @1);
|
FILE_NAME(tmp, @1);
|
||||||
delete[]$1;
|
delete[]$1;
|
||||||
$$ = tmp;
|
$$ = tmp;
|
||||||
|
|
|
||||||
|
|
@ -29,6 +29,7 @@
|
||||||
# include "compiler.h"
|
# include "compiler.h"
|
||||||
# include <iostream>
|
# include <iostream>
|
||||||
# include <cassert>
|
# include <cassert>
|
||||||
|
# include <cstring>
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
|
|
@ -153,3 +154,14 @@ const VType* calculate_subtype_range(const YYLTYPE&loc, const char*base_name,
|
||||||
|
|
||||||
return subtype;
|
return subtype;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ExpString*parse_char_enums(const char*str)
|
||||||
|
{
|
||||||
|
if(!strcasecmp(str, "LF"))
|
||||||
|
return new ExpString("\\n");
|
||||||
|
|
||||||
|
if(!strcasecmp(str, "CR"))
|
||||||
|
return new ExpString("\\r");
|
||||||
|
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -27,6 +27,7 @@ class Architecture;
|
||||||
class Expression;
|
class Expression;
|
||||||
class Package;
|
class Package;
|
||||||
class ExpRange;
|
class ExpRange;
|
||||||
|
class ExpString;
|
||||||
class ScopeBase;
|
class ScopeBase;
|
||||||
class VType;
|
class VType;
|
||||||
|
|
||||||
|
|
@ -63,4 +64,11 @@ extern void library_import(const YYLTYPE&loc, const std::list<perm_string>*names
|
||||||
|
|
||||||
extern void library_use(const YYLTYPE&loc, ActiveScope*res, const char*libname, const char*pack, const char*ident);
|
extern void library_use(const YYLTYPE&loc, ActiveScope*res, const char*libname, const char*pack, const char*ident);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Converts CHARACTER enums to an ExpString* if applicable.
|
||||||
|
* See the standard VHDL library (package STANDARD) or VHDL-2008/16.3
|
||||||
|
* for more details).
|
||||||
|
*/
|
||||||
|
extern ExpString*parse_char_enums(const char*str);
|
||||||
|
|
||||||
#endif /* IVL_parse_misc_H */
|
#endif /* IVL_parse_misc_H */
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue