Wiki page eo.md changed with summary [Proper formatting of titles, as per Style Guide] by Xavi Artigas

This commit is contained in:
Xavi Artigas 2017-10-25 05:35:16 -07:00 committed by apache
parent f011431503
commit 6b7aa38b55
1 changed files with 13 additions and 13 deletions

View File

@ -6,7 +6,7 @@
## Language Quick Reference ##
This is the quick reference, for a full definition see [Format in EBNF](#Eolian_file_format)
This is the quick reference, for a full definition see [Format in EBNF](#Eolian_File_Format)
* General:
* `/* comment */` or `//` are comments like in C/C++, they are used to explain the statements surrounding them. It's ignored and will never go to the generated files.
@ -58,9 +58,9 @@ This is the quick reference, for a full definition see [Format in EBNF](#Eolian_
* **Interfaces**: `interface name ( Base_Class1 , Base_Class2 ) { interface_body }`
- `implements { class.constructor; class.destructor; }`
## Eolian file format example ##
## Eolian File Format Example ##
Before jumping to read the commented example file you may refer to the [Language Quick Reference](#Language_Quick_Reference) or check the full [Eolian file format](#Eolian_file_format).
Before jumping to read the commented example file you may refer to the [Language Quick Reference](#Language_Quick_Reference) or check the full [Eolian file format](#Eolian_File_Format).
```c
/* COMMENTS ARE IMPORTANT, READ THEM. */
@ -275,7 +275,7 @@ Before jumping to read the commented example file you may refer to the [Language
}
```
## Type context matrix ##
## Type Context Matrix ##
| | Value | Named struct | Enum | Pointer | Void |
| --------------- | ------ | ------------ | ------ | ------- | ------ |
@ -295,7 +295,7 @@ Before jumping to read the commented example file you may refer to the [Language
* Keep in mind that whether const void is allowed or not depends on the outer type. When the const void is a base for a pointer it's allowed, otherwise it is not.
## Builtin types ##
## Builtin Types ##
| Type | C type | Comment |
| ------- | ------------------ | -------------------------------- |
@ -335,7 +335,7 @@ Before jumping to read the commented example file you may refer to the [Language
| stringshare| Eina_Stringshare * | |
| generic_value | Eina_Value * | |
## Eolian file format ##
## Eolian File Format ##
The description here uses the [extended BNF notation](https://www.ics.uci.edu/~pattis/ICS-33/lectures/ebnf.pdf) to describe the Eolian syntax.
@ -513,15 +513,15 @@ Thus in the following EBNF you'll see:
return ::= 'return' ':' type return_suffix
```
## Eo expressions ##
## Eo Expressions ##
Eo files support expressions within certain contexts. These expressions can then be evaluated using the Eolian API. There are several types of expressions:
### Simple expressions ###
### Simple Expressions ###
These include "true", "false" and "null", besides the ones below. The former two are used in boolean contexts while the latter is used for pointers of any kind.
#### Numerical expressions ####
#### Numerical Expressions ####
Eolian numbers follow C syntax. They, however, don't support octal. They support type suffixes (case insensitive): `U` (unsigned int), `L` (long), `UL` (unsigned long), `LL` (long long), `ULL` (unsigned long long), `F` (float). Without suffix, the literal is either a signed integer or double depending on whether it contains a floating point.
@ -544,7 +544,7 @@ foo"
A single character. Maps to builtin type **char**. Enclosed within single quotes. Can be either an arbitrary byte (represented within the Eo file, typically as UTF-8) or an escape sequence identical to the ones of strings. Cannot represent Unicode characters - it's just 1 byte. For example: `' a' `, `' \t' `
### Unary expressions ###
### Unary Expressions ###
There are 4 unary operators in Eolian, all with equal precedence level (see table below).
@ -554,7 +554,7 @@ The `!` operator is a logical "not" and its operand must qualify either as an ar
The `~` operator is a bitwise "not". Its operand must qualify as an integer and its result is again an integer (of the same type).
### Binary operators ###
### Binary Operators ###
The binary operators include standard arithmetic (`+`, `-`, `*`, `/`, `%`) - these act on numbers and yield a number of type identical to one of operands (subject to promotion, see below).
@ -570,7 +570,7 @@ Promotion rules for numbers go as follows:
A few examples: `float + int == float`, `unsigned long + long == unsigned long`, `long + unsigned int == long`.
#### Operator precedence ####
#### Operator Precedence ####
What follows is a precedence table of operators in Eolian, from higher to lower precedence.
@ -587,7 +587,7 @@ What follows is a precedence table of operators in Eolian, from higher to lower
| && |
| \|\| |
## Eo file style guide ##
## Eo File Style Guide ##
- Variable names: `foo_bar`
- Class names: `Foo.Bar`