File: PHPDocParam.cpp

package info (click to toggle)
codelite 14.0%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 112,816 kB
  • sloc: cpp: 483,662; ansic: 150,144; php: 9,569; lex: 4,186; python: 3,417; yacc: 2,820; sh: 1,147; makefile: 52; xml: 13
file content (40 lines) | stat: -rw-r--r-- 1,045 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include "PHPDocParam.h"
#include <wx/wxcrt.h>
#include <wx/tokenzr.h>

PHPDocParam::PHPDocParam(PHPSourceFile& sourceFile, const wxString& comment)
    : m_sourceFile(sourceFile)
    , m_comment(comment)
{
}

PHPDocParam::~PHPDocParam() {}

const PHPDocParam::Vec_t& PHPDocParam::Parse()
{
    wxString sname;
    wxString stype;
    m_params.clear();

    wxStringTokenizer tokenizer(m_comment, " \n\r", wxTOKEN_STRTOK);
    while(tokenizer.HasMoreTokens()) {
        wxString word = tokenizer.GetNextToken();

        if(word == "@param") {
            // Next word should be the type
            if(!tokenizer.HasMoreTokens()) {
                break;
            }
            stype = tokenizer.GetNextToken();
            stype = m_sourceFile.MakeIdentifierAbsolute(stype);

            // Next comes the name
            if(!tokenizer.HasMoreTokens()) {
                break;
            }
            sname = tokenizer.GetNextToken();
            m_params.push_back(std::make_pair(sname, stype));
        }
    }
    return m_params;
}