]> granicus.if.org Git - graphviz/commitdiff
Add source for info pages to CVS
authorerg <devnull@localhost>
Tue, 15 Apr 2008 17:20:25 +0000 (17:20 +0000)
committererg <devnull@localhost>
Tue, 15 Apr 2008 17:20:25 +0000 (17:20 +0000)
doc/infosrc/lang.2 [new file with mode: 0644]

diff --git a/doc/infosrc/lang.2 b/doc/infosrc/lang.2
new file mode 100644 (file)
index 0000000..04d6f88
--- /dev/null
@@ -0,0 +1,93 @@
+</TABLE>
+<P>
+The keywords <B>node</B>, <B>edge</B>, <B>graph</B>, <B>digraph</B>,
+<B>subgraph</B>, and <B>strict</B> are case-independent.
+Note also that the allowed compass point values are not keywords, so
+these strings can be used elsewhere as ordinary identifiers.
+<P>
+An <I>ID</I> is one of the following: 
+<MENU>
+<LI> Any string of alphabetic characters, underscores or
+digits, not beginning with a digit;
+<LI> a number [<tt>-</tt>]<sup>?</sup>(<tt>.</tt>[<tt>0</tt>-<tt>9</tt>]<sup>+</sup>  | [<tt>0</tt>-<tt>9</tt>]<sup>+</sup>(<tt>.</tt>[<tt>0</tt>-<tt>9</tt>]<sup>*</sup>)<sup>?</sup> ); 
+<LI> any double-quoted string (&quot;...&quot;) possibly containing escaped 
+quotes (\&quot;);
+<LI> an <A NAME=html>HTML string</A> (&lt;...&gt;).
+</MENU>
+Note that in HTML strings, angle
+brackets must occur in matched pairs, and unescaped newlines are allowed.
+In addition, the content must be legal XML, so that the special XML
+escape sequences for &quot;, &amp;, &lt;, and &gt; may be necessary
+in order to embed these characters in attribute values or raw text.
+<P>
+Both quoted strings and HTML strings are scanned as a unit, so
+any embedded comments will be treated as part of the strings.
+<P>
+An <I>edgeop</I> is <TT>-></TT> in directed graphs and <TT>--</TT> in
+undirected graphs.
+<P>
+An <I>a_list</I> clause of the form <I>ID</I> is equivalent to
+<I>ID</I><TT>=true</TT>.
+<P>
+The language supports C++-style comments: <TT>/* */</TT> and <TT>//</TT>.
+In addition, a line beginning with a '#' character is considered a line
+output from a C preprocessor (e.g., #  34 to indicate line 34 ) and discarded.
+<P>
+Semicolons aid readability but are not required except in the rare case
+that a named subgraph with no body immediately preceeds an anonymous
+subgraph, since the precedence rules cause this sequence to be parsed as
+a subgraph with a heading and a body.
+<P>
+As another aid for readability, dot allows single logical lines to
+span multiple physical lines using the standard C convention of a
+backslash immediately preceding a newline character. In addition, 
+double-quoted strings can be concatenated using a '+' operator.
+As HTML strings can contain newline characters, they do not support the
+concatenation operator.
+<H2>Semantic Notes</H2>
+If a default attribute is
+defined using a <B>node</B>,  <B>edge</B>, or  <B>graph</B> statement,
+or by an attribute assignment not attached to a node or edge, any object of the
+appropriate type defined afterwards will inherit this attribute value.
+This holds until the default attribute is set to a new value, from which
+point the new value is used. Objects defined before a default attribute
+is set will have an empty string value attached to the attribute once
+the default attribute definition is made.
+<P>
+Note, in particular, that a subgraph receives the attribute settings of
+its parent graph at the time of its definition. This can be useful; for
+example, one can assign a font to the root graph and all subgraphs will
+also use the font. For some attributes, however, this property is
+undesirable. If one attaches a label to the root graph, it is probably
+not the desired effect to have the label used by all subgraphs. Rather
+than listing the graph attribute at the top of the graph, and the
+resetting the attribute as needed in the subgraphs, one can simple defer
+the attribute definition if the graph until the appropriate subgraphs
+have been defined.
+<H2>Character encodings</H2>
+The DOT language assumes at least the ascii character set.
+Quoted strings, both ordinary and HTML-like, may contain non-ascii characters.
+In most cases, these strings are uninterpreted: they simply serve as
+unique identifiers or values passed through untouched. Labels, however,
+are meant to be displayed, which requires that the software be able to
+compute the size of the text and determine the appropriate glyphs. 
+For this, it needs to know what character encoding is used.
+<P>
+By default, DOT assumes the UTF-8 character encoding. It also accepts
+the Latin1 (ISO-8859-1) character set, assuming the input graph uses
+the <B><A HREF=attrs.html#a:charset>charset</A></B> attribute to 
+specify this. For graphs using other
+character sets, there are usually programs, such as <TT>iconv</TT>, which
+will translate from one character set to another.
+<P>
+Another way to avoid non-ascii characters in labels is to use HTML entities
+for special characters. During label evaluation, these entities are
+translated into the underlying character. This
+<a HREF="http://www.graphviz.org/doc/char.html">
+table</a> shows the supported entities, with their Unicode value, a typical
+glyph, and the HTML entity name. Thus, to include a lower-case Greek beta
+into a string, one can use the ascii sequence <TT>&amp;beta;</TT>. 
+In general, one should only use entities that are allowed in the output
+character set, and for which there is a glyph in the font.
+</BODY>
+</HTML>