测试C/ c++语法的示例

Samples for testing C/C++ grammar

本文关键字:语法 c++ 测试      更新时间:2023-10-16

是否有任何用于测试解析器语法(C/c++, yacc或其他语法)的特殊示例包,这些示例包将涵盖大多数C/c++语法特性,从简单的表达式开始,如:

int a;
int b;
b=a+a+b-a+b;
printf("hello");

template<class R, class T,
    class B1, class B2,
    class A1, class A2, class A3>
    _bi::bind_t<R, _mfi::BOOST_BIND_MF_NAME(mf2)<R, T, B1, B2>, typename _bi::list_av_3<A1, A2, A3>::type>
    BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2), A1 a1, A2 a2, A3 a3)
{
    typedef _mfi::BOOST_BIND_MF_NAME(mf2)<R, T, B1, B2> F;
    typedef typename _bi::list_av_3<A1, A2, A3>::type list_type;
    return _bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2, a3));
}

定义了它是什么类型的测试(比如:"this test is for checking with pointer's work ")。

GCC在源代码中有很多测试用例,所以如果您的语法是GPL下的开源,那么您可以使用它。

否则,试着找到大型的开源项目,然后把它提供给它——你显然必须验证它是正确的,因为没有两个编译器产生相同的输出(无论你在哪个阶段看它),你必须自己弄清楚"它应该是什么"。或者编写一些可以将GCC的中间文件翻译成与语法输出相同的格式的东西,并比较…