Skip to content

Commit c83593d

Browse files
committed
Operator revamped, Affectation and EmptyNode classes created
Bonus: makefile use simplified
1 parent 4261a30 commit c83593d

16 files changed

Lines changed: 285 additions & 131 deletions
File renamed without changes.

color_schemes/vscode/ezlanguage/syntaxes/EZLanguage.tmLanguage

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -92,13 +92,13 @@
9292
</dict>
9393
<dict>
9494
<key>match</key>
95-
<string>\+\=|-\=|\*\=|/\=|//\=|%\=|&amp;\=|\|\=|\^\=|&gt;&gt;\=|&lt;&lt;\=|\*\*\=|@\=</string>
95+
<string>\+\=|-\=|\*\=|/\=|%\=|&amp;\=|\|\=|\^\=|&gt;&gt;\=|&lt;&lt;\=|\*\*\=|@\=</string>
9696
<key>name</key>
9797
<string>keyword.operator.assignment.augmented.ezlanguage</string>
9898
</dict>
9999
<dict>
100100
<key>match</key>
101-
<string>\+|\-|\*|\*\*|/|//|%|&lt;&lt;|&gt;&gt;|&amp;|\||\^|~|(?!^)@</string>
101+
<string>\+|\-|\*|\*\*|/|%|&lt;&lt;|&gt;&gt;|&amp;|\||\^|~|(?!^)@</string>
102102
<key>name</key>
103103
<string>keyword.operator.arithmetic.ezlanguage</string>
104104
</dict>
@@ -471,7 +471,7 @@
471471
<key>match</key>
472472
<string>(?x) \b(
473473
elif | else | then | for | if | return | while | when | begin | end | do | step |
474-
program |
474+
program | is | in | of | or |
475475
(yield(?:\s+from)?)
476476
)\b
477477
</string>
@@ -1301,7 +1301,7 @@
13011301
<key>builtin_types</key>
13021302
<dict>
13031303
<key>comment</key>
1304-
<string>These are from https://docs.ezlanguage.org/X/library/stdtypes.html
1304+
<string>These are from https://docs.python.org/X/library/stdtypes.html
13051305
where X is 2.7 or 3.5.</string>
13061306
<key>match</key>
13071307
<string>(?x)

makefile

Lines changed: 23 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,45 @@
1-
#compiler used
1+
# Compiler used
22
CC = g++-5
3-
# compilation flags
3+
# Compilation flags
44
CC_FLAGS = -Wall -std=c++11 -ggdb
55
EXT_SRC =
66
CC_MOD_FLAGS = -MM #-MP
77

8-
# lex file extensions (.XXX)
8+
# Lex file extensions (.XXX)
99
LEX_EXT = lex
10-
# lex file interpreter : lexical analysis
10+
# Lex file interpreter : lexical analysis
1111
LEX = flex
1212
LEX_FlAGS =
1313

14-
15-
# extension des fichiers yacc (.XXX)
14+
# Yacc files extension (.XXX)
1615
YACC_EXT = ypp
1716
# interpréteur des fichiers Yacc : analyse syntaxique et sémantique
1817
YACC = bison -t
1918
YACC_FLAGS =
2019

20+
2121
# cpp sources
2222
# --- RAJOUTER CHAQUE FICHIER CPP DE MODULES ICI ! ---
2323
# --- FAIRE UN FICHIER CPP POUR CHAQUE FICHIER H S'IL Y A UNE CLASSE DEDANS ---
2424

2525
# Core
26-
MOD_CPP = src/modules/Node.cpp src/modules/Program.cpp src/modules/TranslatedNode.cpp
26+
MOD_CPP = Node.cpp Program.cpp TranslatedNode.cpp EmptyNode.cpp
2727
# Conditional expression
28-
MOD_CPP += src/modules/Expression.cpp src/modules/BooleanExpression.cpp src/modules/BooleanValue.cpp src/modules/ConditionalExpression.cpp
28+
MOD_CPP += Expression.cpp BooleanExpression.cpp BooleanValue.cpp ConditionalExpression.cpp
2929
# Divers
30-
MOD_CPP += src/modules/ArrayAccess.cpp
30+
MOD_CPP += ArrayAccess.cpp Affectation.cpp Operator.cpp
3131

3232
# Instructions
33-
INSTR_CPP = src/instructions/If.cpp src/instructions/Else.cpp src/instructions/Operation.cpp
34-
INSTR_CPP += src/instructions/For.cpp src/instructions/Repeat.cpp src/instructions/While.cpp
35-
INSTR_CPP += src/instructions/Return.cpp
33+
INSTR_CPP = If.cpp Else.cpp
34+
INSTR_CPP += For.cpp Repeat.cpp While.cpp
35+
INSTR_CPP += Return.cpp
3636

37-
ADDONS_CPP = src/addons/String_addon.cpp src/addons/log.cpp
37+
# Declarations
38+
DEC_CPP = CommonDeclaration.cpp
39+
DEC_CPP += Container.cpp Function.cpp Procedure.cpp Class.cpp Variable.cpp MultipleVariable.cpp Parameter.cpp
3840

39-
# declarations
40-
DEC_CPP = src/declarations/CommonDeclaration.cpp
41-
DEC_CPP += src/declarations/Container.cpp src/declarations/Function.cpp src/declarations/Procedure.cpp
42-
DEC_CPP += src/declarations/Class.cpp src/declarations/Variable.cpp src/declarations/MultipleVariable.cpp
43-
DEC_CPP += src/declarations/Parameter.cpp
41+
# Addons
42+
ADDONS_CPP = src/addons/String_addon.cpp src/addons/log.cpp
4443

4544
# hash table sources
4645
HT_CPP = src/hash_table/HashElement.cpp src/hash_table/HashTable.cpp src/hash_table/ScopeHashTable.cpp src/hash_table/ClassHashTable.cpp
@@ -49,19 +48,19 @@ HT_CPP += src/hash_table/ClassHashed.cpp src/hash_table/FunctionHashed.cpp src/h
4948

5049
ALL_CPP = ${MOD_CPP} ${DEC_CPP} ${INSTR_CPP} ${ADDONS_CPP} ${HT_CPP}
5150

52-
#object files
53-
MOD_OBJ = $(MOD_CPP:src/modules/%.cpp=obj/%.o)
54-
DEC_OBJ = $(DEC_CPP:src/declarations/%.cpp=obj/%.o)
55-
INSTR_OBJ = $(INSTR_CPP:src/instructions/%.cpp=obj/%.o)
51+
# Object files
52+
MOD_OBJ = $(MOD_CPP:%.cpp=obj/%.o)
53+
DEC_OBJ = $(DEC_CPP:%.cpp=obj/%.o)
54+
INSTR_OBJ = $(INSTR_CPP:%.cpp=obj/%.o)
5655
ADDONS_OBJ = $(ADDONS_CPP:src/addons/%.cpp=obj/%.o)
5756
HT_OBJ = $(HT_CPP:src/hash_table/%.cpp=obj/%.o)
5857

5958
ALL_OBJ = ${MOD_OBJ} ${DEC_OBJ} ${INSTR_OBJ} ${ADDONS_OBJ} ${HT_OBJ}
6059

61-
#dependency files
60+
# Dependency files
6261
ALL_DPDCY = $(ALL_OBJ:%.o=%.d)
6362

64-
#executables
63+
# Executables
6564
# exe name, must have the same name as lex file
6665
EXEC = EZ_language_compiler
6766

src/EZ_language_compiler.lex

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,8 @@ minus [-]
3939

4040
{separators} { /* On ignore */ }
4141
{comment} { /* Ignore it */ cout << "Comment"<<endl; }
42-
{integer} { yylval.texte= yytext; return(NUM_INTEGER); } // integer
43-
{reel} { yylval.texte= yytext; return(NUM_REAL);} // real
42+
{integer} { yylval.text= yytext; return(NUM_INTEGER); } // integer
43+
{reel} { yylval.text= yytext; return(NUM_REAL);} // real
4444

4545
{backLine} return(BACK_LINE);
4646

@@ -195,12 +195,12 @@ minus [-]
195195
(exist|EXIST) return(EXIST);
196196

197197

198-
{ID} { yylval.texte= yytext;
198+
{ID} { yylval.text= yytext;
199199
return (NAME);
200200
}
201201

202-
{quote}{minus}{minus}{ID}{quote} {yylval.texte = yytext; return(STRING_PARAM);}
203-
{quote}{phrase}{quote} {yylval.texte = yytext; return(STRING);}
202+
{quote}{minus}{minus}{ID}{quote} {yylval.text = yytext; return(STRING_PARAM);}
203+
{quote}{phrase}{quote} {yylval.text = yytext; return(STRING);}
204204

205205

206206
<<EOF>> return END_OF_FILE;

0 commit comments

Comments
 (0)