Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

ETrice/GSoC/2012/GACL

< ETrice‎ | GSoC/2012
Revision as of 20:33, 30 March 2012 by Unnamed Poltroon (Talk) (Thoughts on Syntax)

Generic Action Code Language (GACL)

GACL is the language to describe the Detail Code for execution of ROOM Models in eTrice plugin . GACL aims at dealing with all features commonly available in imperative languages , especially Java , C/C++ . It will act as complement of current version of eTrice which uses code written in target language stored in a string as execution code . GACL would make user able to write execution code independent of target language .

Development Details and Core Information

Features of GACL

  • Variable Declarations ( with optional initializers ) and Function Declaration .
  • Comparison & arithmetic expressions .
  • Basic types , and user defined types .
  • If-else blocks and ladders .
  • For , while , for each , enhanched for each .
  • Support for iterators (that can be used by for each loops ) .
  • Function Calls with arguments & diff types i.e. ref/value/address .
  • type checking and as much as possible implicit type casting .
  • Casts corresponding to static casts in C .

Thoughts on Syntax

Although syntax for GACL is still being designed but here are few thought regarding syntax .

  • Empty
 {}
  • Type Declaration
 "type" typename [ type | "{" TypeCode "}"]
  • VariableDeclaration
 [type] varname [ "=" { varname2 | Expression } ] { ";" | "\n" }
  • Expression
 { ArithmeticExpression | LogicalExpression }
    • ArithmeticExpression
 { Expression { "+" | "-" | "*" | "/" | "**" | "^" | "%" | "div" } Expression } 
 | {Expression { "++" | "--" } } | { { "++" | "--" } Expression }
    • LogicalExpression
 { Expression { "<" | "<=" | "==" | ">" | ">=" | "|" | "||" | "&" | "&&" | "^" } Expression }
  • Statement
 { Expression | VariableDeclaration }
  • StatementList
 { Empty | Statement StatementList }
  • Program
 { StatementList}


Disambiguation

The syntax used to specify the grammar in brief is

  • Things written in double quotes ("") stand as string written in source .
  • Content inside braces ({}) represents required content .
  • Content inside square brackets ([]) represents optional content .
  • Everything rest is either terminal or non-terminals .
  • Empty and statement list need a more thought to be done . We would surely finally come up with a better solution .

Project Proposal

Click Here to see the project proposal at gsoc's website .

Click Here to see the project proposal in my github repository .

Useful Links

Copyright © Eclipse Foundation, Inc. All Rights Reserved.