parsecode.jl

Pollen/rewriters/parsecode.jl is a source file in module Pollen

			
			
			
			const
			
			 

	
			PARSECODE_SELECTOR
			 
			=
			
			 
			

	
			SelectTag
			(
			
			:
			codeblock
			)
			 
			&
			 
			

	
			SelectAttrEq
			(
			
			:
			lang
			,
			 
			
			"
			julia
			"
			)
			

			

			
			
			Base
			.
			
			@
			kwdef
			 
			
			
			struct
			
			 

	
			ParseCode
			 
			<:
			 

	
			Rewriter
			
			
    
			
			
			selector
			::

	
			Selector
			 
			=
			 

	
			PARSECODE_SELECTOR
			
    
			
			
			format
			::

	
			Format
			 
			=
			 
			

	
			JuliaSyntaxFormat
			(
			)
			

			end
			

			

			
			function
			 
			

	
			rewritedoc
			(
			
			rewriter
			::

	
			ParseCode
			,
			 
			_
			,
			 
			doc
			)
			
			
    
			
			return
			 
			
			

	
			cata
			(
			doc
			,
			 
			
			rewriter
			.
			
			selector
			)
			 
			do
			
			 
			x
			
			
        
			
			code
			 
			=
			 
			
			string
			(
			
			strip
			(
			
			
			Pollen
			.
			

	
			gettext
			(
			x
			)
			)
			)
			
        
			
			return
			 
			

	
			withchildren
			(
			x
			,
			 
			
			[
			

	
			parse
			(
			code
			,
			 
			
			rewriter
			.
			
			format
			)
			]
			)
			
    
			end
			

			end
			

			

			
			@
			testset
			 
			
			"
			ParseCode [rewriter]
			"
			 
			
			begin
			
    
			
			rewriter
			 
			=
			 
			

	
			ParseCode
			(
			)
			
    
			
			@
			test
			
			 
			

	
			rewritedoc
			(
			rewriter
			,
			 
			
			"
			
			"
			,
			
                     
			

	
			Node
			(
			
			:
			md
			,
			 
			
			"
			hi
			"
			,
			 
			

	
			Node
			(
			
			:
			codeblock
			,
			 
			
			"
			x
			"
			,
			 
			
			lang
			 
			=
			 
			
			"
			julia
			"
			)
			)
			)
			 
			==
			
          
			

	
			Node
			(
			
			:
			md
			,
			 
			
			"
			hi
			"
			,
			
               
			

	
			Node
			(
			
			:
			codeblock
			,
			
                    
			

	
			Node
			(
			
			:
			julia
			,
			 
			

	
			Node
			(
			
			:
			Identifier
			,
			 
			
			"
			x
			"
			)
			)
			,
			 
			
			lang
			 
			=
			 
			
			"
			julia
			"
			)
			)
			

			end