From af1681cc87ba8a0077f40735daad32f1e0a7c77d Mon Sep 17 00:00:00 2001 From: llsth Date: Thu, 9 Apr 2015 23:59:17 +0200 Subject: [PATCH] localized keywords --- app/localize/ialias.h | 4 +- app/localize/kword.h | 101 ++++++++++++++++++++++++++++++++++++ app/localize/lang.h | 54 ------------------- app/localize/lex.h | 11 +--- app/main/lexer.cpp | 1 + app/system/window_amiga.cpp | 2 +- 6 files changed, 107 insertions(+), 66 deletions(-) create mode 100644 app/localize/kword.h delete mode 100644 app/localize/lang.h diff --git a/app/localize/ialias.h b/app/localize/ialias.h index 24334ef1..08f50dd7 100644 --- a/app/localize/ialias.h +++ b/app/localize/ialias.h @@ -24,8 +24,8 @@ * */ -#ifndef AMATH_TEXT_IDENT_ALIAS_H -#define AMATH_TEXT_IDENT_ALIAS_H +#ifndef AMATH_LOCALIZE_IDENT_ALIAS_H +#define AMATH_LOCALIZE_IDENT_ALIAS_H struct identalias { const char *ident; diff --git a/app/localize/kword.h b/app/localize/kword.h new file mode 100644 index 00000000..34bddc90 --- /dev/null +++ b/app/localize/kword.h @@ -0,0 +1,101 @@ +/* + * Copyright (c) 2015 Carsten Larsen + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * Generated with FlexCat. For more information, see: + * http://sourceforge.net/projects/flexcat/ + * + */ + +#ifndef AMATH_TEXT_KEYWORD_H +#define AMATH_TEXT_KEYWORD_H + +/** + * @file kword.h + * @brief Keywords used by lexer. + * + */ + +#include "clib.h" +#include "localize/lex.h" + +/** + * @brief Character representation of keyword tied with its symbol. + * + */ +struct keyworddef { + const char *name; + Symbol symbol; +}; + +static const keyworddef keywords[] = { + { "clear", symclear }, + { "def", symdef }, + { "delete", symdelete }, + { "e", syme }, + { "i", symi }, + { "pi", sympi }, + { "ins", symins }, + { "eval", symeval }, + { "draw", symdraw }, + { "plot", symplot }, + { "execute", symexecute }, + { "exit", symexit }, + { "quit", symexit }, + { "statements", symstatement }, + { "operators", symoperator }, + { "complex", symcomplex }, + { "funcs", symfunction }, + { "functions", symfunction }, + { "trigon", symtrigon }, + { "trigonometric", symtrigon }, + { "hyper", symhyper }, + { "hyperbolic", symhyper }, + { "help", symhelp }, + { "prompt", symprompt }, + { "version", symversion }, + { "mem", symmem }, + { "memory", symmem }, + { "prefs", symprefs }, + { "preferences", symprefs }, + { "list", symlist }, + { "load", symload }, + { "save", symsave }, + { "show", symshow }, + { "vars", symvariable }, + { "variables", symvariable }, + { "digits", symdigits }, + { "input", syminput }, + { "output", symoutput }, + { "bin", symbin }, + { "binary", symbin }, + { "oct", symoct }, + { "octal", symoct }, + { "dec", symdec }, + { "decimal", symdec }, + { "hex", symhex }, + { "hexadecimal", symhex }, + { EMPTYSTRING, Symbol(0) } +}; + +#endif diff --git a/app/localize/lang.h b/app/localize/lang.h deleted file mode 100644 index 83b27375..00000000 --- a/app/localize/lang.h +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright (c) 2015 Carsten Larsen - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - */ - -#ifndef AMATH_TEXT_LANGUAGE_H -#define AMATH_TEXT_LANGUAGE_H - -/* -english -bosanski -catala -czech -dansk -deutsch -espanol -francais -italiano -magyar -nederlands -norsk -polski -portugues -portugues-Brasil -russian -slovensko -srpski -suomi -svenska -turkce -*/ - -#endif diff --git a/app/localize/lex.h b/app/localize/lex.h index 5ccb70f5..58ce0cb2 100644 --- a/app/localize/lex.h +++ b/app/localize/lex.h @@ -76,15 +76,7 @@ static const operatordef operators[] = { { ';', symdelimiter} }; -/** - * @brief Character representation of keyword tied with its symbol. - * - */ -struct keyworddef { - const char *name; - Symbol symbol; -}; - +/* static const keyworddef keywords[] = { { "clear", symclear}, { "def", symdef}, @@ -133,5 +125,6 @@ static const keyworddef keywords[] = { { "draw", symdraw}, { "plot", symplot} }; +*/ #endif diff --git a/app/main/lexer.cpp b/app/main/lexer.cpp index 8e2282e5..0bdfe369 100644 --- a/app/main/lexer.cpp +++ b/app/main/lexer.cpp @@ -28,6 +28,7 @@ #include "main/lexer.h" #include "main/token.h" #include "localize/lex.h" +#include "localize/kword.h" #include "system/program.h" Lexer::Lexer(const char *input) diff --git a/app/system/window_amiga.cpp b/app/system/window_amiga.cpp index 72a32d66..8abdb8ae 100755 --- a/app/system/window_amiga.cpp +++ b/app/system/window_amiga.cpp @@ -304,7 +304,7 @@ void AmigaWindow::SetPrompt(const char* string) // //BOOL AskKeyMap(struct IOStdReq *request, struct KeyMap *keymap) //{ - // request->io_Command = CD_ASKKEYMAP; +// request->io_Command = CD_ASKKEYMAP; // request->io_Length = sizeof(struct KeyMap); // request->io_Data = (APTR)keymap; /* where to put it */ // DoIO(request);