1029c language Grammar

Source: Internet
Author: User

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

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

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

< type declaration >→< no return type >< character >< integer >< floating-point >

< declarators >→< pointers >< Path declarations >|< path declarations >

< pointers >→*|*< pointers >

< path declaration >→< identifier >|< Path declaration >[] |< Path declaration >[< constant expression,] |< identifier > (< parameter table >) < identifier > () |< Path declaration >,< Identifier Table >

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

< constant expressions >→< conditional statements >

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

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

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

< statement tables >→< statements >|< 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 >) < statement >|for (< expression >< Statement >) < statement >|for (< expression >< expression > < expressions >) < statements >

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

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

< Assignment expression >→

< Assignment expression >→< logical OR expression >|< logical or expression >?< expression >:< Assignment expression >

< logic or expressions >→< logic and Expressions >

< logic and expressions >→< inclusions or expressions >|

< include or expression >→< or expression >|< or expression >| | < include or expression >

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

< expressions >→< equations >|< with expressions >&< equations >

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

< relationship expressions >→< moving expressions >|< Relational Expressions > < < moving expressions >|< relational expressions > > < moving expressions >|< relational Expressions >ge-op < move an expression >

< moving Expressions >→< addition expressions >|<><>

Operation Expressions >|< Moving expressions >lert-op< expression >|< moving expressions >right-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 >:< statement >|default:

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.