1029c language Grammar

Source: Internet
Author: User

< programs >→< external declarations >|< programs >< external declarations >

< external declarations >→< function definitions >|< declarations >

< function definition >→< type description >< declarator >< Compound statement >

< type description >→< no return type >|< character >|< integer >|< floating-point >

< declarators >→< pointers >< Direct declarations >|< Direct declarations >

< pointers >→< asterisks >|< asterisks >< pointers >

< direct declarations >→< identifiers >|< Direct declarations >[]|< Direct declarations > (< constant expressions >) |< identifiers > (< parameter table >) |< identifiers > () | < direct declaration >,< Identifier Table >

< identifier table >→< identifier >|< identifier table >,< identifiers >

< constant expressions >→< conditional expressions >

< parameter table >→< parameter declaration >|< parameter table >,< parameter declaration >

< parameter declarations >→< declaration notes >< identifiers >

< compound statement >→{}| {< Statement Table >}| {< Declaration table >< Statement table;}

< declaration table >→< declarator >|< declarator >< Declaration table >

< declarations >→< initialization declarations >|< initializing declaration tables >,< initializing declarations >

< initialization declarations >→< declarators >|< declarators >=< Initialize >

< initialization >→< Assignment expression >| {< Initialization Table >}| {< initialization table;,}

< Initialize table >→< initialize >|< initialize table >,< Initialize >

< statement tables >→< statements >|< statement tables >< statements >

< statements >→|< Compound statements >|< expression Statements >|< SELECT statements >|< loop statements >|< jump statements >

< expression statements >→;|< expressions >;

< SELECT statement >→if (< expression >) < statement >|if (< expression >) < statement >else< Statement >

< Loop statement >→while (< expression >) |for (< expression statement >< expression statement >) < statement >|for (< expression statement >< expression statement >< Expressions >) < statements >

< jump statements >→|continue;|break;|return;|return < expressions >;

< expressions >→< Assignment Expressions >|< Expressions >,< Assignment Expressions >

< Assignment expressions >→< conditional expressions >|< unary Expressions >< assignment operators >< Assignment Expressions >

< conditional expressions >→< logic or expressions >|< logical OR expression; < expressions >:< Conditional expressions >

< logic or expressions >→< logic and expressions >|< logic or expressions >or-op< logic and Expressions >

< logic and expressions >→< inclusiveness or expressions >|< logic and expressions >and-op< inclusiveness or expressions >

< inclusiveness or expressions >→< xor expressions >|< inclusiveness or expressions >|< xor expressions >

< XOR expressions >→< expressions >|< xor Expressions >^< and Expressions >

< expressions >→< equivalent expressions >|< and expressions >&< equivalent expressions >

< equivalent expressions >→< relational expressions >|< equivalent expressions >eq-op< relational expressions >|< equivalent expressions >ne-op< relational expressions >

< relationship expressions >→< move Expressions >|< relational Expressions ><< move expressions >|< relational Expressions >>< move expressions >|< relational Expressions >le-op < move expressions >|< relationship Expressions >ge-op< Move Expressions >

< move expression >→< expression >|< move expression >lert-op< expression >|< Move expression >right-op< op expression >

< expressions >→< multiplication expressions >|< expression >+< multiplication Expressions >|< op-expressions >-< multiplication Expressions >

< multiplication expressions >→< conversion Expressions >|< multiplication Expressions >*< conversion Expressions >|< multiplication Expressions >/< Conversion Expressions >

|< multiplication Expressions >%< Conversion Expressions >

< convert expression >→< unary expression >| (< type name >) < conversion expression >

< unary expression >→< suffix expression >|inc-op < unary expression >|dec-op < unary expression >|< unary expression >< transform expression >|sizeof< unary expression >|sizeof (< type name >)

< suffix expression >→< primary expression >|< postfix expression >[< expression >]|< suffix expression > () |< suffix expression > (< parameter expression table >) |< suffix expression >.< identifier >|< suffix expression >ptr-op< identifier >|< suffix expression >inc-op|< suffix expression >dec-op

< main expressions >→< identifiers >|< constants >|< string >| (< expression >)

< parameter expression table >→< assignment expression >|< parameter expression table >,< assignment expression >

< unary operator >→&|*|+|-|~|!

< Assignment expression >→=| mul_assign| div_assign| mod_assign| add_assign| sub_assign| left_assign| right_assign| and_assign| xor_assign| Or_assign

< storage class Description >→< claim type >|< external variable declaration >|< static storage >|< Automatic storage >|< Register variable >

< structure or joint description >→< struct or union >< identifier >{< struct declaration table >}|< struct or union >{< struct Declaration table >}|< struct or union >< identifier >

< structure or union >→< structure >|< Union >

< struct declaration table >→< Struct declaration >|< struct Declaration table >< struct declaration >

< structure declaration >→< struct Declaration table >

< description Qualifying Table >→< type description >< description Qualifying Table >|< type description >|< type qualification >< description qualifying table >|< type limit >

< struct declaration table >→< Struct declaration >|< struct Declaration table >,< struct declaration >

< struct declarations >→:< declarators >|:< constant Expressions >|< declarators >:< constant Expressions >

< enumeration Description >→< enumeration >{< enumeration Table >}|< Enumeration >< identifier >{< enumeration Table >}|< enumeration >< identifier >

< enumeration tables >→< enumerations >|< enumeration tables >,< enumerations >

< enumeration >→< identifiers >|< identifiers >=< constant Expressions >

< type limit >→< constants >|< variables >

< type qualification Table >→< type qualification >|< type qualification table >< type qualification >

< parameter type table >→< parameter table >|< parameter table >,< ellipsis >

< parameter table >→< parameter declaration >|< parameter table >,< parameter declaration >

< type name >→< Description Qualification Table >|< Description Qualifying Table >< Abstract Declaration >

< abstract declarations >→< pointers >|< Direct abstract declarations >|< pointers >< Direct Abstract declarations >

< direct abstract declaration >→ (< abstract declaration >) | [  ]| [< constant expression >]|< Direct Abstract declaration >[] |< Direct Abstract Declaration >[< constant Expression >]| () | (< parameter type table >) |< Direct Abstract Declaration > () |< Direct Abstract Declaration > (< parameter type table >)

< tag statements >→< identifiers >:< statements > |case< constant Expressions >:< Statements >|default:< statements >

1029c language Grammar

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.