Search in sources :

Example 1 with Parser

use of st.gravel.support.compiler.ast.Parser in project gravel by gravel-st.

the class DiskClassReader method readClass_packageName_file_namespace_.

public ClassNode readClass_packageName_file_namespace_(final String _aName, final st.gravel.core.Symbol _packageName, final java.io.File _aFilename, final String[] _anArray) {
    final Parser _parser;
    MessageNode _expr;
    ClassNode _cn;
    st.gravel.support.jvm.Block3<ClassNode, ClassNode, MessageNode, Parser> _directive;
    final int _start;
    _cn = ClassNode.factory.name_namespacePath_(st.gravel.core.Symbol.value(_aName), st.gravel.support.jvm.ArrayExtensions.collect_(_anArray, ((st.gravel.support.jvm.Block1<st.gravel.core.Symbol, String>) (new st.gravel.support.jvm.Block1<st.gravel.core.Symbol, String>() {

        @Override
        public st.gravel.core.Symbol value_(final String _each) {
            return (st.gravel.core.Symbol) st.gravel.core.Symbol.value(_each);
        }
    }))));
    _parser = Parser.factory.source_sourceFile_(st.gravel.support.jvm.FilenameExtensions.contentsOfEntireFile(_aFilename), SourceFile.factory.directory_name_packageName_(_aFilename.getParent(), _aFilename.getName(), _packageName));
    _start = _parser.position();
    boolean _temp1 = false;
    while (!_temp1) {
        _temp1 = _parser.atEnd();
        if (!_temp1) {
            _expr = ((MessageNode) _parser.parseExpression());
            _directive = DiskClassReader.this.directiveAt_(_expr.selector());
            _cn = _directive.value_value_value_(_cn, _expr, _parser);
            if (!_parser.atEnd()) {
                _parser.parseBang();
            }
        }
    }
    return ((ClassNode) _parser.setSourcePosition_node_(_start, _cn));
}
Also used : ClassNode(st.gravel.support.compiler.ast.ClassNode) ArrayList(java.util.ArrayList) List(java.util.List) Parser(st.gravel.support.compiler.ast.Parser) MessageNode(st.gravel.support.compiler.ast.MessageNode)

Aggregations

ArrayList (java.util.ArrayList)1 List (java.util.List)1 ClassNode (st.gravel.support.compiler.ast.ClassNode)1 MessageNode (st.gravel.support.compiler.ast.MessageNode)1 Parser (st.gravel.support.compiler.ast.Parser)1