diff options
author | 1138-4EB <1138-4EB@users.noreply.github.com> | 2017-02-19 18:49:32 +0100 |
---|---|---|
committer | tgingold <tgingold@users.noreply.github.com> | 2017-12-10 12:02:05 +0100 |
commit | bb37f17aef2e69655c61510c4896dd8cb303c993 (patch) | |
tree | c9d4b97c8d7197f40e8f5909beea2b4b5fa459f2 /STYLE | |
parent | 87a5d4a2ea5172b4ba485d208092ecb88dce75cb (diff) | |
download | ghdl-bb37f17aef2e69655c61510c4896dd8cb303c993.tar.gz ghdl-bb37f17aef2e69655c61510c4896dd8cb303c993.tar.bz2 ghdl-bb37f17aef2e69655c61510c4896dd8cb303c993.zip |
Move split ols txts to doc/oldmds. Add shields to README. Change target of license shield on RTD.
Diffstat (limited to 'STYLE')
-rw-r--r-- | STYLE | 90 |
1 files changed, 0 insertions, 90 deletions
diff --git a/STYLE b/STYLE deleted file mode 100644 index c7acb2756..000000000 --- a/STYLE +++ /dev/null @@ -1,90 +0,0 @@ -GHDL coding style -***************** - -Ada subset: use only a simple (VHDL like) subset of Ada: no tasking, no -controlled types... VHDL users should easily understand that subset. -Allowed Ada93 features: the standard library, child packages. -Use assertions. - -We try to follow the 'GNU Coding Standards' when possible: comments before -declarations, two spaces at end of sentences, finish sentences with a dot. -But: 3 spaces for indentation. - -No trailing spaces, not TAB (HT). - -Subprograms must have a comment before to describe it, like: - -- Analyze the concurrent statements of PARENT. - procedure Sem_Concurrent_Statement_Chain (Parent : Iir); -The line before the comment must be a blank line (unless this is the first -declaration). Don't repeat the comment before the subprogram body. - -* For subprograms: -1) Declare on one line when possible: - function Translate_Static_Aggregate (Aggr : Iir) return O_Cnode - -2) If not possible, put the return on the next line: - function Translate_Static_String (Str_Type : Iir; Str_Ident : Name_Id) - return O_Cnode - -3) If not possible, put parameters and return on the next line: - function Create_String_Literal_Var_Inner - (Str : Iir; Element_Type : Iir; Str_Type : O_Tnode) return Var_Type - -4) If not possible, return on the next line: - function Translate_Shortcut_Operator - (Imp : Iir_Implicit_Function_Declaration; Left, Right : Iir) - return O_Enode - -5) If not possible, one parameter per line, just after subprogram name: - procedure Translate_Static_Aggregate_1 (List : in out O_Array_Aggr_List; - Aggr : Iir; - Info : Iir; - El_Type : Iir) -6) If not possible, add a return after subprogram name: - function Translate_Predefined_TF_Array_Element - (Op : Predefined_Boolean_Logical; - Left, Right : Iir; - Res_Type : Iir; - Loc : Iir) - return O_Enode - -7) If not possible, ask yourself what is wrong! Shorten a name. - -* Rule for the 'is': one a new line only if the declarative part is not empty: - procedure Translate_Assign (Target : Mnode; Expr : Iir; Target_Type : Iir) - is - Val : O_Enode; - begin -vs - function Translate_Static_Range_Dir (Expr : Iir) return O_Cnode is - begin - -If the parametere line is too long with the 'is', put in on a separate line: - procedure Predeclare_Scope_Type - (Scope : in out Var_Scope_Type; Name : O_Ident) is - -* Generic instantiation: put the generic actual part on a new line: - procedure Free is new Ada.Unchecked_Deallocation - (Action_List, Action_List_Acc); - -* For if/then statement: -1) 'then' on the same line: - if Get_Expr_Staticness (Decl) = Locally then - -2) If not possible, 'then' is alone on its line aligned with the 'if': - if Expr = Null_Iir - or else Get_Kind (Expr) = Iir_Kind_Overflow_Literal - then - -3) For a multiline condition, 'or else' and 'and then' should start lines. - -* 'Local' variable declaration: -Do not initialize variables, constants must be declared before variables: - is - N_Info : constant Iir := Get_Sub_Aggregate_Info (Info); - Assoc : Iir; - Sub : Iir; - begin -If the initialization expression has a side effect (such as allocation), do -not use a constant. - |