コード例 #1
0
ファイル: Parser.cs プロジェクト: rwtodd/SequenceDiagrams_WPF
        private static void getNote(Tokenizer t, Diagram d)
        {
            // a NOTE takes the form:  NOTE Actor: the note is here....
            Token id = t.NextToken();
            if (id.type != TokenType.TOK_IDENTIFIER) { d.HasErrors = true; return; }
            var actor = d.MaybeNewActor(id.data);

            Token str = t.NextToken();
            string desc = null;
            switch(str.type) {
                case TokenType.TOK_STRING:
                    desc = str.data;
                    break;
                case TokenType.TOK_EOL:
                    desc = "";
                    break;
                default:
                    d.HasErrors = true;
                    return;
            }

            var ln = d.AddLine(actor, actor);
            ln.Desc = desc;
            ln.Note = true;
        }
コード例 #2
0
ファイル: Parser.cs プロジェクト: rwtodd/SequenceDiagrams_WPF
        private static void parseArrow(Tokenizer t, Diagram d, Actor left)
        {
            Token rightID = t.NextToken();

            // this should be an identifier... or SELF...
            Actor right = null;

            switch (rightID.type)
            {
                case TokenType.TOK_IDENTIFIER:
                    right = d.MaybeNewActor(rightID.data);
                    break;
                case TokenType.TOK_SELF:
                    right = left;
                    break;
                default:
                    d.HasErrors = true;
                    return;
            }

            // we definitely have a line now...
            var line = d.AddLine(left, right);

            // OK, now we have a possible DASHED and STRING...
            Token rest = t.NextToken();
            while (rest.type != TokenType.TOK_EOL)
            {
                switch (rest.type)
                {
                    case TokenType.TOK_DASHED:
                        line.Dashed = true;
                        break;
                    case TokenType.TOK_STRING:
                        line.Desc = rest.data;
                        break;
                    default:
                        d.HasErrors = true;
                        return;
                }
                rest = t.NextToken();
            }
        }