X-Git-Url: https://www.ginac.de/ginac.git//ginac.git?p=ginac.git;a=blobdiff_plain;f=ginsh%2Fginsh_lexer.ll;h=3c6f0dfb723aa11db52823bb244e33b985bd53ac;hp=250403536b19094cfea4ca69ade10bb6913341fa;hb=af6809f55c95cf6ea6ef80bd1d19637a06f32e5a;hpb=fa792492f853255f78b3e10c6f727fd10ad45cac diff --git a/ginsh/ginsh_lexer.ll b/ginsh/ginsh_lexer.ll index 25040353..3c6f0dfb 100644 --- a/ginsh/ginsh_lexer.ll +++ b/ginsh/ginsh_lexer.ll @@ -4,7 +4,7 @@ * This file must be processed with flex. */ /* - * GiNaC Copyright (C) 1999-2000 Johannes Gutenberg University Mainz, Germany + * GiNaC Copyright (C) 1999-2003 Johannes Gutenberg University Mainz, Germany * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -55,7 +55,8 @@ AN [0-9a-zA-Z_] %% [ \t\n]+ /* skip whitespace */ \\$ /* skip line continuations */ -"#".* /* skip comments starting with "#" */ +"//".* /* skip comments starting with "//" */ +^"#".* /* skip lines starting with "#" */ ^"!".* system(yytext + 1); /* execute shell command */ /* special values */ @@ -70,8 +71,9 @@ Digits yylval = (long)Digits; return T_DIGITS; quit|exit return T_QUIT; warranty return T_WARRANTY; print return T_PRINT; -read return T_READ; -write return T_WRITE; +iprint return T_IPRINT; +print_latex return T_PRINTLATEX; +print_csrc return T_PRINTCSRC; time return T_TIME; xyzzy return T_XYZZY; inventory return T_INVENTORY; @@ -88,13 +90,16 @@ score return T_SCORE; \" return T_QUOTE; \"\" return T_QUOTE2; \"\"\" return T_QUOTE3; - - /* matrix delimiters */ -\[\[ return T_MATRIX_BEGIN; -\]\] return T_MATRIX_END; +\% return T_QUOTE; +\%\% return T_QUOTE2; +\%\%\% return T_QUOTE3; /* numbers */ {D}+ | +"#"{D}+"R"{AN}+ | +"#b"([01])+ | +"#o"[0-7]+ | +"#x"[0-9a-fA-F]+ | {D}+"."{D}*({E})? | {D}*"."{D}+({E})? | {D}+{E} yylval = numeric(yytext); return T_NUMBER; @@ -109,6 +114,9 @@ score return T_SCORE; return T_SYMBOL; } + /* wildcards */ +\${D}+ yylval = wild(atoi(yytext + 1)); return T_LITERAL; + /* everything else */ . return *yytext;