Gennaro Costagliola


Visual Language Editors based on LR Parsing Techniques
Gennaro Costagliola | Vincenzo Deufemia
Proceedings of the Eighth International Conference on Parsing Technologies

Visual language editors should provide a user-friendly environment where users are supported in an effective way in the construction of visual sentences. In this paper, we propose an approach for the construction of syntax-directed visual language editors by integrating incremental parsers into freehand editors. The approach combines the LR-based techniques for parsing visual languages with the more general incremental Generalized LR parsing techniques developed for string languages.


(Pictorial) LR Parsing from an Arbitrary Starting Point
Gennaro Costagliola
Proceedings of the Third International Workshop on Parsing Technologies

In pictorial LR parsing it is always difficult to establish from which point of a picture the parsing process has to start. This paper introduces an algorithm that allows any element of the input to be considered as the starting one and, at the same time, assures that the parsing process is not compromised. The algorithm is first described on string grammars seen as a subclass of pictorial grammars and then adapted to the two-dimensional case. The extensions to generalized LR parsing and pictorial generalized LR parsing are immediate.


Parsing 2-D Languages with Positional Grammars
Gennaro Costagliola | Shi-Kuo Chang
Proceedings of the Second International Workshop on Parsing Technologies

In this paper we will present a way to parse two-dimensional languages using LR parsing tables. To do this we describe two-dimensional (positional) grammars as a generalization of the context-free string grammars. The main idea behind this is to allow a traditional LR parser to choose the next symbol to parse from a two-dimensional space. Cases of ambiguity are analyzed and some ways to avoid them are presented. Finally, we construct a parser for the two-dimensional arithmetic expression language and implement it by using the tool Yacc.