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; }
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(); } }