aboutsummaryrefslogtreecommitdiffstats
path: root/STYLE
diff options
context:
space:
mode:
Diffstat (limited to 'STYLE')
-rw-r--r--STYLE90
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.
-