<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to Loyc.Syntax</title><link>https://sourceforge.net/p/loyc/wiki/Loyc.Syntax/</link><description>Recent changes to Loyc.Syntax</description><atom:link href="https://sourceforge.net/p/loyc/wiki/Loyc.Syntax/feed" rel="self"/><language>en</language><lastBuildDate>Tue, 06 May 2014 16:21:41 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/loyc/wiki/Loyc.Syntax/feed" rel="self" type="application/rss+xml"/><item><title>Loyc.Syntax modified by David Piepgrass</title><link>https://sourceforge.net/p/loyc/wiki/Loyc.Syntax/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;A core part of Loyc is the concept of the "Loyc tree". If you are not familiar with Loyc trees, read this article: &lt;a href="http://loyc-etc.blogspot.ca/2013/04/the-loyc-tree-and-prefix-notation-in-ec.html" rel="nofollow"&gt;http://loyc-etc.blogspot.ca/2013/04/the-loyc-tree-and-prefix-notation-in-ec.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Loyc.Syntax contains&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;CodeSymbols, a static class that defines the names of most built-in features of Enhanced C#. In the future, I hope we will define some kind of "standard imperative language" that will use many of the same symbol names as EC#. In that case, perhaps CodeSymbols will just contain the standard (lower-level) symbols and EC# will have its own class for EC#-specific features.&lt;/li&gt;
&lt;li&gt;My Loyc tree implementation (Nodes folder).&lt;ul&gt;
&lt;li&gt;LNode class represents a subtree of source code. Currently, all nodes are immutable.&lt;/li&gt;
&lt;li&gt;Typically one uses LNodeFactory to create LNodes in C#.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Facilities for representing source code and source code locations (SourceFiles folder)&lt;ul&gt;
&lt;li&gt;The design of this portion is unstable. You might see "leftover code" that isn't being used.&lt;/li&gt;
&lt;li&gt;The ISourceFile interface and its subinterfaces represent a source file of characters (.NET chars).&lt;/li&gt;
&lt;li&gt;EmptySourceFile, a dummy object that can be used as the "source file" for synthetic nodes&lt;/li&gt;
&lt;li&gt;SourceRange, a structure that holds an ISourceFile reference and a range of indexes (two integers)&lt;/li&gt;
&lt;li&gt;SourcePos, a position represented as a file name string, a line number, and a column number&lt;ul&gt;
&lt;li&gt;The SourceRange.Begin and SourceRange.End properties create SourcePos objects on-the-fly&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Facilities for implementing lexers a.k.a. scanners/tokenizers (Lexing folder):&lt;ul&gt;
&lt;li&gt;Again, I'm not confident about the design and may change it.&lt;/li&gt;
&lt;li&gt;ILexer, a suggested interface for lexers to implement&lt;/li&gt;
&lt;li&gt;&lt;code&gt;BaseLexer&amp;lt;TSource&amp;gt;&lt;/code&gt;, a suggested base class for implementing lexers using LLLPG&lt;/li&gt;
&lt;li&gt;Token, a universal 4-word structure (3 ints and an object reference) for tokens in any language&lt;/li&gt;
&lt;li&gt;TokenTree, a list of tokens plus an ISourceFile that is common to all the tokens&lt;/li&gt;
&lt;li&gt;TokensToTree: a class that arranges tokens into a tree, grouping tokens by (), {} and [].&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;BaseParser&amp;lt;Token&amp;gt;&lt;/code&gt;, a base class designed for parsers generated by LLLPG&lt;/li&gt;
&lt;li&gt;IntSet, a class for holding a collection of integers or characters, expressed as a series of integer ranges.&lt;/li&gt;
&lt;li&gt;LES (Loyc Expression Syntax) support (Les folder, Loyc.Syntax.Les namespace)&lt;ul&gt;
&lt;li&gt;LesLexer class - Tokenizes LES code&lt;/li&gt;
&lt;li&gt;LesParser class - Parses LES code&lt;/li&gt;
&lt;li&gt;TokenType enum - Types of tokens in LES&lt;/li&gt;
&lt;li&gt;LesNodePrinter class - prints arbitrary syntax trees (currently very rudimentary)&lt;/li&gt;
&lt;li&gt;LesPrecedence - contains documentation for the operators and the precedence rules&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">David Piepgrass</dc:creator><pubDate>Tue, 06 May 2014 16:21:41 -0000</pubDate><guid>https://sourceforge.neta1c4979544f226e0e14b0a5e64a096e670f0a820</guid></item></channel></rss>