diff options
Diffstat (limited to 'kdesu/kdesud/lexer.cpp')
-rw-r--r-- | kdesu/kdesud/lexer.cpp | 134 |
1 files changed, 0 insertions, 134 deletions
diff --git a/kdesu/kdesud/lexer.cpp b/kdesu/kdesud/lexer.cpp deleted file mode 100644 index f1932f07d..000000000 --- a/kdesu/kdesud/lexer.cpp +++ /dev/null @@ -1,134 +0,0 @@ -/* vi: ts=8 sts=4 sw=4 - * - * This file is part of the KDE project, module tdesu. - * Copyright (C) 1999,2000 Geert Jansen <[email protected]> - * - * lexer.cpp: A lexer for the tdesud protocol. See tdesud.cpp for a - * description of the protocol. - */ - -#include <ctype.h> -#include <tqcstring.h> -#include "lexer.h" - - -Lexer::Lexer(const TQCString &input) -{ - m_Input = input; - in = 0; -} - -Lexer::~Lexer() -{ - // Erase buffers - m_Input.fill('x'); - m_Output.fill('x'); -} - -TQCString &Lexer::lval() -{ - return m_Output; -} - -/* - * lex() is the lexer. There is no end-of-input check here so that has to be - * done by the caller. - */ - -int Lexer::lex() -{ - char c; - - c = m_Input[in++]; - m_Output.fill('x'); - m_Output.resize(0); - - while (1) - { - // newline? - if (c == '\n') - return '\n'; - - // No control characters - if (iscntrl(c)) - return Tok_none; - - if (isspace(c)) - while (isspace(c = m_Input[in++])); - - // number? - if (isdigit(c)) - { - m_Output += c; - while (isdigit(c = m_Input[in++])) - m_Output += c; - in--; - return Tok_num; - } - - // quoted string? - if (c == '"') - { - c = m_Input[in++]; - while ((c != '"') && !iscntrl(c)) { - // handle escaped characters - if (c == '\\') - m_Output += m_Input[in++]; - else - m_Output += c; - c = m_Input[in++]; - } - if (c == '"') - return Tok_str; - return Tok_none; - } - - // normal string - while (!isspace(c) && !iscntrl(c)) - { - m_Output += c; - c = m_Input[in++]; - } - in--; - - // command? - if (m_Output.length() <= 4) - { - if (m_Output == "EXEC") - return Tok_exec; - if (m_Output == "PASS") - return Tok_pass; - if (m_Output == "DEL") - return Tok_delCmd; - if (m_Output == "PING") - return Tok_ping; - if (m_Output == "EXIT") - return Tok_exit; - if (m_Output == "STOP") - return Tok_stop; - if (m_Output == "SET") - return Tok_set; - if (m_Output == "GET") - return Tok_get; - if (m_Output == "HOST") - return Tok_host; - if (m_Output == "SCHD") - return Tok_sched; - if (m_Output == "PRIO") - return Tok_prio; - if (m_Output == "DELV") - return Tok_delVar; - if (m_Output == "DELG") - return Tok_delGroup; - if (m_Output == "DELS") - return Tok_delSpecialKey; - if (m_Output == "GETK") - return Tok_getKeys; - if (m_Output == "CHKG") - return Tok_chkGroup; - } - - return Tok_str; - } -} - |