mirror of
https://github.com/Ed94/gencpp.git
synced 2024-12-22 07:44:45 -08:00
Fix for wrong tokens for GNU/MSVC attribute captures (parse_attributes)
Also a fix for a typo in the readme...
This commit is contained in:
parent
c7647ab00f
commit
67d02c1f62
@ -6,7 +6,7 @@ The library API is a composition of code element constructors.
|
|||||||
These build up a code AST to then serialize with a file builder.
|
These build up a code AST to then serialize with a file builder.
|
||||||
|
|
||||||
This code base attempts follow the [handmade philosophy](https://handmade.network/manifesto),
|
This code base attempts follow the [handmade philosophy](https://handmade.network/manifesto),
|
||||||
its not meant to be a black box metaprogramming utility, it should be easy to intergrate into a user's their project domain.
|
its not meant to be a black box metaprogramming utility, it should be easy to intergrate into a user's project domain.
|
||||||
|
|
||||||
## Notes
|
## Notes
|
||||||
|
|
||||||
|
@ -1428,16 +1428,16 @@ CodeAttributes parse_attributes()
|
|||||||
|
|
||||||
else if ( check(TokType::Decl_GNU_Attribute) )
|
else if ( check(TokType::Decl_GNU_Attribute) )
|
||||||
{
|
{
|
||||||
eat(TokType::BraceCurly_Open);
|
eat(TokType::Capture_Start);
|
||||||
eat(TokType::BraceCurly_Open);
|
eat(TokType::Capture_Start);
|
||||||
|
|
||||||
while ( left && currtok.Type != TokType::BraceCurly_Close )
|
while ( left && currtok.Type != TokType::Capture_End )
|
||||||
{
|
{
|
||||||
eat(currtok.Type);
|
eat(currtok.Type);
|
||||||
}
|
}
|
||||||
|
|
||||||
eat(TokType::BraceCurly_Close);
|
eat(TokType::Capture_End);
|
||||||
eat(TokType::BraceCurly_Close);
|
eat(TokType::Capture_End);
|
||||||
|
|
||||||
s32 len = ( (sptr)prevtok.Text + prevtok.Length ) - (sptr)start.Text;
|
s32 len = ( (sptr)prevtok.Text + prevtok.Length ) - (sptr)start.Text;
|
||||||
}
|
}
|
||||||
@ -1445,14 +1445,14 @@ CodeAttributes parse_attributes()
|
|||||||
else if ( check(TokType::Decl_MSVC_Attribute) )
|
else if ( check(TokType::Decl_MSVC_Attribute) )
|
||||||
{
|
{
|
||||||
eat( TokType::Decl_MSVC_Attribute );
|
eat( TokType::Decl_MSVC_Attribute );
|
||||||
eat( TokType::BraceCurly_Open);
|
eat( TokType::Capture_Start);
|
||||||
|
|
||||||
while ( left && currtok.Type != TokType::BraceCurly_Close )
|
while ( left && currtok.Type != TokType::Capture_End )
|
||||||
{
|
{
|
||||||
eat(currtok.Type);
|
eat(currtok.Type);
|
||||||
}
|
}
|
||||||
|
|
||||||
eat(TokType::BraceCurly_Close);
|
eat(TokType::Capture_End);
|
||||||
|
|
||||||
s32 len = ( (sptr)prevtok.Text + prevtok.Length ) - (sptr)start.Text;
|
s32 len = ( (sptr)prevtok.Text + prevtok.Length ) - (sptr)start.Text;
|
||||||
}
|
}
|
||||||
|
@ -118,8 +118,9 @@ void check_SOA()
|
|||||||
{
|
{
|
||||||
log_fmt("\ncheck_SOA:");
|
log_fmt("\ncheck_SOA:");
|
||||||
gen::init();
|
gen::init();
|
||||||
|
|
||||||
Builder soa_test = Builder::open( "SOA.gen.hpp" );
|
Builder soa_test = Builder::open( "SOA.gen.hpp" );
|
||||||
|
|
||||||
soa_test.print( parse_using( code(
|
soa_test.print( parse_using( code(
|
||||||
using u16 = unsigned short;
|
using u16 = unsigned short;
|
||||||
)));
|
)));
|
||||||
@ -136,6 +137,7 @@ void check_SOA()
|
|||||||
u64 D;
|
u64 D;
|
||||||
};
|
};
|
||||||
))
|
))
|
||||||
|
, 100
|
||||||
));
|
));
|
||||||
|
|
||||||
soa_test.write();
|
soa_test.write();
|
||||||
|
@ -18,7 +18,7 @@ int gen_main()
|
|||||||
|
|
||||||
check_SOA();
|
check_SOA();
|
||||||
|
|
||||||
check_singleheader_ast();
|
// check_singleheader_ast();
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user